Выберите значения, которые начинаются с цифры - PullRequest
17 голосов
/ 22 декабря 2010

У меня есть таблица со столбцом, содержащим данные, которые тоже начинаются с цифр, в MySQL

Как выбрать строки, начинающиеся только с цифры?

Ответы [ 5 ]

32 голосов
/ 22 декабря 2010
SELECT * FROM YourTable WHERE YourColumn regexp '^[0-9]+'
8 голосов
/ 22 декабря 2010

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

SELECT *
FROM MyTable
WHERE MyColumn REGEXP '^[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)
6 голосов
/ 13 мая 2013

Еще один способ:

WHERE LEFT(columnName,1) IN ('0','1','2','3','4','5','6','7','8','9')

и с общими кодировками и сопоставлениями это будет работать и использовать индекс для столбца:

WHERE columnName >= '0' AND columnName < ':'
5 голосов
/ 13 мая 2013

также

SELECT * FROM YourTable
WHERE YourColumn LIKE '[0-9]%';
2 голосов
/ 08 июня 2016
SELECT * FROM TABLE T
WHERE T.COLUMNNAME REGEXP '^[0-9]';

Другой ответ:

SELECT * FROM TABLE T
WHERE T.COLUMNNAME RLIKE '^[0-9]';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...