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].*'