MySQL正则表达式REGEXP操作

文章描述:

当判断一个字符或者数据库中数据某个字段是否有某个字符时,可以使用REGEXP来作为查询条件来操作?

判断数字

判断一个字符是否存在某个指定的数字值用法:

select ('abc3def' REGEXP '[3]')

REGEXP前面的是字符内容,后面的是条件,判断3这个数字是否在前面这个字符里面,如果存在侧返回1,不存在返回0。

判断一个字符是否存在指定区间值的用法:

select ('abc6def' REGEXP '[1-9]')

判断字符里面是否有存在1-9的数字,如果有侧返回1,如果把添加设置为1-5侧返回0。

判断字母

判断一个指定字母

SELECT * FROM sys_goods WHERE title REGEXP '[K]'

查询产品表里面标题里面包含K字母的产品有哪些

判断所有包含字母的

SELECT * FROM sys_goods WHERE title REGEXP '[A-Z]'

查询产品表里面标题包含字母A-Z24个字母的产品有哪些

反查询

反查询数据表字段里面没有数组的所有数据

SELECT * FROM mip_tags WHERE name NOT REGEXP '[0-9.]'

子查询

使用子查询和反查询数据

SELECT name FROM mip_tags WHERE id IN(SELECT id FROM mip_tags WHERE name NOT REGEXP "[^0-9.]")

使用子查询和修改数据

使用子查询和修改数据表字段里面的内容

UPDATE mip_tags a INNER JOIN(SELECT id from mip_tags WHERE id in(SELECT id FROM mip_tags WHERE name NOT REGEXP "[^0-9.]")) b ON a.id=b.id SET a.url_name = a.`name`

 

发布时间:2021/08/06

发表评论