Использование последовательности в IN () - PullRequest
3 голосов
/ 14 ноября 2011

Я пытаюсь выбрать все значения, которые имеют определенное исходное значение, используя код, подобный следующему.

l.sub IN('12480','12481')

Однако мне нужно все, где sub содержит значение 10921-12480. Есть ли способ быстро выбрать эти значения, не вводя каждое из них.

Спасибо!

Ответы [ 4 ]

7 голосов
/ 14 ноября 2011

Если l.sub имеет числовой тип, вы можете использовать BETWEEN.

l.sub BETWEEN 10921 AND 12480
3 голосов
/ 14 ноября 2011

Чтобы добавить к тому, что сказал @Radu, в документации MySQL говорится, что поведение на границах диапазона меньше или равно или больше, чем или равно.

Другими словами,

expr BETWEEN min AND max

- это то же самое, что и

(min <= expr AND expr <= max)

. Здесь также сказано, что типы совпадают, иначе вы открываете-конверсия червей!

2 голосов
/ 14 ноября 2011

Предполагая, что l.sub является строкой, вы можете попробовать следующее:

length(l.sub) = 5 AND l.sub >= '10921' and l.sub <= '12481'
2 голосов
/ 14 ноября 2011

не используйте IN;)

l.sub >= 10921 AND l.sub <= 12480
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...