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

Допустим в таблице есть поле first_letter, которое может быть либо цифрой либо буквой. Как выбрать только те строки для которых first_letter=цифра?
  • Вопрос задан
  • 9554 просмотра
Пригласить эксперта
Ответы на вопрос 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)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
17 нояб. 2019, в 19:40
1000 руб./за проект
17 нояб. 2019, в 19:34
120000 руб./за проект
17 нояб. 2019, в 19:17
2000 руб./за проект