1

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

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

它将我的所有数据返回为 1...colum 是一个 varchar,我将拥有这样1234或这样的 user_idUSER-484或 `ADMIN-464567' 是我想要做的可能吗?

4

3 回答 3

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 演示

于 2013-01-29T18:37:29.867 回答
1

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

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

你也错过了一个^意思是“在行首”

于 2013-01-29T18:37:37.433 回答
0

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

于 2013-01-30T04:45:40.500 回答