Как выбрать несколько строк по первичному ключу в MySQL? - PullRequest
1 голос
/ 11 марта 2010
SELECT * FROM `TABLE` WHERE
(`PRIMARY_KEY`= `VALUE1`) OR
(`PRIMARY_KEY`= `VALUE2`) OR
(`PRIMARY_KEY`= `VALUE3`) OR
(`PRIMARY_KEY`= `VALUE4`) OR
(`PRIMARY_KEY`= `VALUE5`) OR ...

Это работает.Но есть ли более быстрый способ?

Ответы [ 4 ]

7 голосов
/ 11 марта 2010

Использование конструкции value in (list) не быстрее, , но SQL-код будет намного легче читать / понимать , когда кому-то понадобится поддерживать код.

SELECT * 
FROM `TABLE` 
WHERE `PRIMARY_KEY` in( `VALUE1`
                       , `VALUE2`
                       , `VALUE3`
                       , `VALUE4`
                       , `VALUE5`
                      ) 

Обновлено: Переписано, чтобы отразить обратную связь с комментариями.

3 голосов
/ 11 марта 2010
SELECT * FROM table WHERE primary_key IN (value1, value2, ...)
0 голосов
/ 11 марта 2010

а как же

SELECT * FROM `TABLE` WHERE
(`PRIMARY_KEY`IN( `VALUE1`,`VALUE2`,`VALUE3`,`VALUE4`,`VALUE5`) )
0 голосов
/ 11 марта 2010

Вы можете использовать ключевое слово IN для достижения этой цели:

SELECT * FROM Table WHERE PRIMARY_KEY IN (VALUE1, VALUE2, ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...