Как искать значение в известном диапазоне в MySQL - PullRequest
0 голосов
/ 13 ноября 2009

Допустим, у меня есть такой запрос:

SELECT * FROM table_name WHERE venue = "1" OR venue = "10"

Отлично, отлично работает. Но допустим, у меня есть список из 50 номеров мест. Есть ли простой способ сделать это, когда мне не нужно выписывать 50 разных операционных?

Спасибо!

Ответы [ 5 ]

4 голосов
/ 13 ноября 2009

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

SELECT * FROM table_name WHERE venue IN (1, 12, 23, ... 150)
1 голос
/ 13 ноября 2009
SELECT * FROM table_name WHERE venue IN ('1','10')

Лучший ответ будет

SELECT * FROM table_name WHERE venue IN @myVar

Где @myVar - список, установленный в запросе,

0 голосов
/ 14 ноября 2009

Не уверен, что MySQL поддерживает это ...

Используйте оператор BETWEEN:

SELECT *
  FROM table
  WHERE venue BETWEEN '1' and '50';

Хотя вам может потребоваться быть более явным при работе со строкой символов Типы данных:

SELECT *
  FROM table
  WHERE venue BETWEEN '1' and '9'
     OR venue BETWEEN '10' and 50';

Конечно, BETWEEN не поможет, если ваш список чисел несмежный.

0 голосов
/ 13 ноября 2009

Try ...

SELECT * FROM table_name WHERE venue in ('1', '10')

Я знаю, что это работает в Oracle. Оператор "in", вероятно, является частью стандартного SQL? Незнайка.

edit: двойные к одинарным кавычкам.

0 голосов
/ 13 ноября 2009

Используйте ключевое слово IN: ... WHERE venue IN (2, 3, 5, 7, 11, ...) ;

...