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

Допустим в таблице есть поле first_letter, которое может быть либо цифрой либо буквой. Как выбрать только те строки для которых first_letter=цифра?
  • Вопрос задан
  • 13177 просмотров
Пригласить эксперта
Ответы на вопрос 5
dali
@dali
firstr_letter только один символ?
протестируйте на скорость выполнения следующие конструкции:
— WHERE first_letter IN (1,2,3,4,5,6,7,8,9,0)
— WHERE first_letter REGEXP '[0-9]'
Ответ написан
Комментировать
@MaxUp
как то так:
SELECT * FROM ... WHERE first_letter REGEXP '^[0-9]+$';

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

SELECT * FROM x WHERE IS_NUMERIC(first_letter)
Ответ написан
В MySQL разве есть функция IS_NUMERIC..?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы