2016-11-30 4 views
0

ПРИМЕЧАНИЕ: Возможный дубликат mysql RAND() LIMIT не ответил на ответ, потому что в моем SQL-адресе мои ORDER BY и LIMIT уже находятся вместе.Показать уникальные случайные записи в пределах LIMIT

Я хотел бы показать уникальные случайные записи, но в пределы диапазона, но когда я использую RAND() в моем SQL тянет случайные записи из-за мой предел диапазона:

SELECT DISTINCT cases.caseid, cases.img, casetypes.casetypeid, cases.cost 
FROM cases, casetypes 
WHERE cases.caseid = casetypes.caseid AND casetypes.mastercaseid = $mastercaseid 
ORDER BY RAND() 
LIMIT $lastrow, $perPage 

EDIT: Это работало я на основе ответа ниже:

SELECT * FROM (
SELECT DISTINCT cases.caseid, cases.img, casetypes.casetypeid, cases.cost 
FROM cases, casetypes 
WHERE cases.caseid = casetypes.caseid AND casetypes.mastercaseid = $mastercaseid 
LIMIT $lastrow, $perPage 
) x 
ORDER BY RAND() 
+0

Почему бы просто не добавить другое условие к предложению 'WHERE', чтобы ограничить определенный диапазон? Предложение 'LIMIT' должно по-прежнему возвращать количество требуемых записей, предполагая, что доступно много доступных. –

+0

Возможный дубликат [mysql RAND() LIMIT] (http://stackoverflow.com/questions/13797553/mysql-rand-limit) –

+0

@CoderofCode Я видел это сообщение, но мои ORDER BY и LIMIT уже находятся вместе. – obreezy

ответ

0

Если я правильно понимаю ваш вопрос, один вариант сделать подвыбор, так что вы можете сделать предел, прежде чем ваш сделать заказ:

SELECT * FROM (

SELECT DISTINCT cases.caseid, cases.img, casetypes.casetypeid, cases.cost 
FROM cases, casetypes 
WHERE cases.caseid = casetypes.caseid AND casetypes.mastercaseid = $mastercaseid 
LIMIT $lastrow, $perPage 
) x 

ORDER BY RAND() 
+0

Хмм, я этого не понимаю. Кажется, не работает для меня. – obreezy

+0

Можете ли вы интегрировать свой пример с моим конкретным SQL? Я не вижу, как это сделать, но также поддерживаю доступность столбцов. – obreezy

+0

@obreezy делает работу выше? – David542

Смежные вопросы