Многочисленные операторы OR в MySQL - PullRequest
14 голосов
/ 13 июня 2010

Я пытаюсь получить контент, где id = 3 ИЛИ id = 9 ИЛИ id = 100 ... Имейте в виду, у меня может быть несколько сотен этих идентификаторов.

Какой самый эффективный способ написать мой запрос?

$sql = "SELECT name FROM artists WHERE (id=3 OR id=9 OR .... id-100)"

Ответы [ 7 ]

30 голосов
/ 13 июня 2010
  ....
WHERE id IN (3, 9, 100, ...)
8 голосов
/ 15 июня 2010

Вы можете использовать функцию IN():

... WHERE id IN (3, 9, 100);

Синтаксис функции IN():

expr IN (value,...)

Проверьте, находится ли значение в наборе значений ...

Возвращает 1, если expr равно любому из значений в списке IN, иначе возвращает 0.

4 голосов
/ 15 июня 2010

Вы можете использовать условие SQL IN

SELECT * FROM table WHERE ID IN ('1', '2', '3', '4');
4 голосов
/ 15 июня 2010
SELECT * FROM table WHERE id IN (1, 2, 3 etc)

И вызывайте только нужные вам столбцы вместо использования *!

2 голосов
/ 20 июня 2010
SELECT * FROM table WHERE id IN (1,2,5)
1 голос
/ 20 июня 2010
SELECT * FROM table WHERE id IN (1,2,5);
0 голосов
/ 13 июня 2010

$ sql = "ВЫБЕРИТЕ имя ОТ Художников, ГДЕ id REGEXP regex-pattern "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...