MySQL запрос, выбирая определенный массив результатов - PullRequest
0 голосов
/ 14 марта 2011

У нас есть список идентификаторов, например:

11, 22, 55, 99, 187

У нас есть таблица с полем "id".

Мы в основном хотим выбрать ВСЕ результаты, где id равно 11, 22, 55, 99, 187

Каков наилучший способ сделать запрос MySQL, подобный этому?

Вместо того, чтобы WHERE id = '11' OR '22'.....

Мы используемэто с PHP, так как у нас есть список идентификаторов, и мы хотим выбрать результаты, используя эти идентификаторы с запросом mysql.

Ответы [ 4 ]

3 голосов
/ 14 марта 2011

Используйте это

Where id IN (11,22,55,99,187)
1 голос
/ 14 марта 2011

Как уже упоминалось в других ответах, вы можете использовать предложение IN (...).Но если у вас длинный список значений идентификаторов и вы хотите добиться максимальной производительности, я бы предложил использовать временную таблицу для хранения значений, а затем использовать INNER JOIN для временной таблицы:

/* Create the temporary table */
CREATE TEMPORARY TABLE temp_lookup (id INT NOT NULL);
/* Insert values in temp table */
INSERT INTO temp_lookup (id) VALUES (11), (22), (55), (99), (187), ...;
/* Select using INNER JOIN */
SELECT mt.field_list
FROM main_table AS mt INNER JOIN temp_lookup AS tt ON mt.id = tt.id
1 голос
/ 14 марта 2011

попробуйте в пункте

Mysql IN пункт

0 голосов
/ 14 марта 2011

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

Что-то вроде:

SELECT id from table where id IN (11, 22, 55, 99, 187);

Это действительно логика, просто прочитайте руководство.

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