2015-10-04 3 views
-1

продуктов цикла I на домашней странице с этим кодомзаказа по RAND() LIMIT 0,9

$query = query(" SELECT * FROM products WHERE product_quantity >= 1 and " . $uslov); 
confirm($query); 

Я хочу только 9 случайных продуктов. Я использую order by RAND() LIMIT 0,9, но он не работает. Как написать этот код со случайным?

+1

В каком значении '$ uslov' содержится. Пожалуйста, уточните свой вопрос. – sandeepsure

+0

'ORDER BY RAND() LIMIT 0, 9' должен работать. Пожалуйста, уточните, что означает «не работает»? –

+0

Я получаю ошибку QUERY FAILED У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «AND product_id> 0» в строке 1 – Ismet

ответ

0

Если вы хотите девять случайных продуктов и девять матчей в where условия, то запрос должен выглядеть следующим образом:

SELECT p.* 
FROM products p 
WHERE p.product_quantity >= 1 
ORDER BY rand() 
LIMIT 9; 

(Смещение значения не требуется.)

Я также оставил из $uslov, потому что вы не указываете, что это похоже или дайте ему значение. Если вы уверены в том, что он содержит, то не стесняйтесь добавлять его обратно.

Обратите внимание, что ORDER BY rand() работает достаточно хорошо для нескольких сотен или тысяч строк. Однако для больших таблиц вам понадобится другой способ получить случайные строки (если вам нужна производительность).

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