У меня есть таблица со столбцом, содержащим данные, которые тоже начинаются с цифр, в MySQL
Как выбрать строки, начинающиеся только с цифры?
SELECT * FROM YourTable WHERE YourColumn regexp '^[0-9]+'
Вы можете сделать:
SELECT * FROM MyTable WHERE MyColumn REGEXP '^[0-9]';
Используемое регулярное выражение: ^[0-9].
^[0-9]
^ - Start anchor, used to ensure the pattern matches start of the string. [ - Start of character class. 0-9 - Any digit ] - End of character class
Фактически мы пытаемся выбрать те значения в столбце, которые начинаются с цифры .
Демонстрация:
mysql> select * from tab; +-------+ | col | +-------+ | 1foo | | foo | | 10foo | | foo10 | +-------+ 4 rows in set (0.00 sec) mysql> select * from tab where col regexp '^[0-9]'; +-------+ | col | +-------+ | 1foo | | 10foo | +-------+ 2 rows in set (0.00 sec)
Еще один способ:
WHERE LEFT(columnName,1) IN ('0','1','2','3','4','5','6','7','8','9')
и с общими кодировками и сопоставлениями это будет работать и использовать индекс для столбца:
WHERE columnName >= '0' AND columnName < ':'
также
SELECT * FROM YourTable WHERE YourColumn LIKE '[0-9]%';
SELECT * FROM TABLE T WHERE T.COLUMNNAME REGEXP '^[0-9]';
Другой ответ:
SELECT * FROM TABLE T WHERE T.COLUMNNAME RLIKE '^[0-9]';