Например, мне нужно вывести 10 каких-либо топиков случайным образом, я делаю так:
SQL |
SELECT * FROM `topics` ORDER BY RAND() LIMIT 10; |
SQL |
SELECT * FROM `topics` WHERE ID <> 10 and ID <> 27 and ID <> 38 and ID <> 498 and ID <> 875 and ID <> 1025 and ID <> 4568 and ID <>7432 and ID <> 10987 and ID <> 12548 ORDER BY RAND() LIMIT 10; |
SQL |
WHERE `id` NOT IN (IDшники через запятую) |
Цитата (Guest @ 20.09.2009 - 16:49) | ||
нуу тогда уже
как то красивше |
Цитата (sergeiss @ 20.09.2009 - 14:54) | ||||
Оно "красивше" , это да, но на больших таблицах скорость выполнения может быть достаточно большой - этот вопрос уже многократно рассматривался тут. |
Цитата |
Т.е. утверждается, что IN всегда дольше, чем ID <> 10 and ........... ? |
Цитата (waldicom @ 20.09.2009 - 18:23) |
Т.е. утверждается, что IN всегда дольше, чем ID <> 10 and ........... |