Mysql 类SQL语句";%[^0-9]%;不起作用

Mysql 类SQL语句";%[^0-9]%;不起作用,mysql,mysql-workbench,Mysql,Mysql Workbench,我有一张桌子 USER TABLE Columns: user_name (varchar) age (int) address (varchar) telephone (varchar) 我想搜索地址字段包含数字的用户 我在MySQL Workbench中尝试了以下sql语句: SELECT * FROM user WHERE address LIKE '%[^0-9]%'; 然而,它没有起作用。有人能帮我吗 提前感谢。我相信您正在寻找: 查

我有一张桌子

USER TABLE Columns:
    user_name (varchar)
    age       (int)
    address   (varchar)
    telephone (varchar)
我想搜索地址字段包含数字的用户

我在MySQL Workbench中尝试了以下sql语句:

SELECT * FROM user WHERE address LIKE '%[^0-9]%';
然而,它没有起作用。有人能帮我吗


提前感谢。

我相信您正在寻找:

查找没有数字的地址的方法

'%[^0-9]%'
将搜索以文本形式包含
%[^0-9]%
的列

它不会在上面做正则表达式

试一试


您应该从括号中删除
^
字符:

像“%[0-9]%”

它不想成为正则表达式,而是
[charlist]
通配符

select * from user where first_name REGEXP '^[0-9].*'

这将提供用户表中的所有记录,其中名字以数字0-9开头。

谢谢。明白了=)但这很奇怪。。。当我在中尝试sql语句时,它起了作用。@user1140210:
%
不是正则表达式字符,而是通配符。几乎就像搜索文件时的
s*
一样,SQL的等价项是
s%
。尽管
LIKE
可以接受某些类似于regex模式的东西,但它不是真的regex(这就是
REGEXP
的含义)。实际上,可以在括号中使用^。看见
'.[^0-9].'   // That performs regex
select * from user where first_name REGEXP '^[0-9].*'