选择以数字开头的值

时间:2010-12-22 17:38:18

标签: sql mysql select numbers

我有一个表,其中包含一个列,其中包含以数字开头的数据,在MySQL上

如何选择仅以数字开头的行?

5 个答案:

答案 0 :(得分:30)

SELECT * FROM YourTable WHERE YourColumn regexp '^[0-9]+'

答案 1 :(得分:7)

你可以这样做:

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)

答案 2 :(得分:6)

另一种方式:

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

使用常见的字符集和排序规则,这将起作用并在列上使用索引:

WHERE columnName >= '0' AND columnName < ':'

答案 3 :(得分:5)

SELECT * FROM YourTable
WHERE YourColumn LIKE '[0-9]%';

答案 4 :(得分:2)

SELECT * FROM TABLE T
WHERE T.COLUMNNAME REGEXP '^[0-9]';

另一个答案是:

SELECT * FROM TABLE T
WHERE T.COLUMNNAME RLIKE '^[0-9]';