Mysql. Как выбрать строки в поле которого есть только цифры?

Допустим в таблице есть поле first_letter, которое может быть либо цифрой либо буквой. Как выбрать только те строки для которых first_letter=цифра?
10 февраля в 14:14
2
JetMaster 1,5

отсортировано по дате по оценке
ответы (5)

+5
dali #
firstr_letter только один символ?
протестируйте на скорость выполнения следующие конструкции:
— WHERE first_letter IN (1,2,3,4,5,6,7,8,9,0)
— WHERE first_letter REGEXP '[0-9]'
+5
MaxUp #
как то так:
SELECT * FROM ... WHERE first_letter REGEXP '^[0-9]+$';

а если там только один символ, то можно и просто
SELECT * FROM ... WHERE first_letter REGEXP '^[0-9]';
+1
Stdit #
Регулярные выражения — не самая лучшая идея (см EXPLAIN).
select * from t where str<='9'
select * from t where str in ('0','1','2','3','4','5','6','7','8','9')
0
deadkrolik #
Ох вы и понаписали.

SELECT * FROM x WHERE IS_NUMERIC(first_letter)
0
SelenIT2 #
Если положиться на условие
поле first_letter, которое может быть либо цифрой либо буквой

вариант WHERE first_letter < 'a' не будет ли быстрее всех? ;)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.