MySQL,如果第一个字符是数字

时间:2013-01-29 18:25:35

标签: mysql sql

我正在尝试编写一个mysql脚本来查看第一个字符是否为数字,这就是我到目前为止的内容

select CASE WHEN user_id REGEXP '[0-9]+' then 1 else 0 end as user_id  from table

它将我的所有数据返回为1 ... colum是varchar,我将拥有user_id,如1234或此USER-484或`ADMIN-464567'是我想做的事情吗?

3 个答案:

答案 0 :(得分:1)

尝试此操作以检查起始字母/数字是否为数字:

select CASE WHEN user_id
REGEXP '^[0-9]+' 
then 1 else 0 end as user_id
from table;

select CASE WHEN user_id
REGEXP '^\d+' 
then 1 else 0 end as user_id
from table;

我只是想知道你的查询安排。我认为它应该是这样的,

select user_id
from table
where REGEXP '^\d+' ;

但是你的实际上正在使用正确的regex。 :)

* SQLFIDDEL DEMO

答案 1 :(得分:1)

所以你想要显示user_id吗?然后将你的正则表达式放在WHERE子句

select user_id from table
where
user_id REGEXP '^[0-9]+'

此外,您错过了^,这意味着“在行首”

答案 2 :(得分:0)

由于您在[0-9]之前缺少^,它会匹配您字段中任何位置的数字。通过指定^ [0-9],这意味着它应该以数字开头。所以尝试使用'^ [0-9]'