MySQL - выборка строк, где значение поля меньше 5 символов - PullRequest
10 голосов
/ 11 февраля 2010

Мне нужно выбрать все строки, где поле 'zip' меньше 5 символов. Как я могу добиться этого, используя только SQL? Сначала я Google, но нашел только информацию о CHAR_LENGTH ().

т. Е. Псевдо-код: ВЫБРАТЬ * ОТ ПОЛЬЗОВАТЕЛЕЙ, ГДЕ НАЖМИТЕ (zip_code) <5 </p>

Спасибо!

Ответы [ 5 ]

25 голосов
/ 11 февраля 2010

Для MySQL вы бы использовали функцию LENGTH (), т.е..

select * from users where length(zip_code) < 5

См. Документацию по http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_length для получения дополнительной информации.

9 голосов
/ 11 февраля 2010
2 голосов
/ 12 февраля 2010

Если вы ищете плохие почтовые индексы, то char_length (zip_code) <5 - это начало, но он по-прежнему будет передавать неверные почтовые индексы. </p>

используйте SELECT * от пользователей, где char_length (zip_code) <5 ИЛИ zip_code НЕ REGEXP '^ ([0-9] {5}) $' </p>

Часть регулярного выражения в основном ищет zip_codes, где первые 5 символов не являются числами от 0 до 9

Веселись

2 голосов
/ 11 февраля 2010

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

SELECT * FROM table WHERE LENGTH(myfield) < 5; 

Проверьте это для получения дополнительной информации.

0 голосов
/ 29 сентября 2016

Вы можете сделать

SELECT * FROM table WHERE LENGTH(zip) <= 5;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...