一、基础操作--sql语句
查询name字段中包含'张'的数据
:select name from 表名 where name regexp '张';
查询name字段中包含'张'或者'王'的数据
(两者都查询出来):select name from 表名 where name regexp '张|王';
查询age字段中包含1或者5数据
(两者都查询出来):select age from 表名 where age regexp '[15]';
查询name字段中为空的数据
:select name from 表名 where name is null;
查询email中以字母开头的数据
:select name,email from 表名 where email regexp '^[a-z].*$';(注:数字的话是0-9,同理)
查询hobby中以'王者'开头的数据
:select name,email,hobby from 表名 where hobby regexp '[[:<:]]王者';
查询name中包含_的数据
:select name,email from 表名 where name regexp '\\_';
查询不是以@qq.com结尾的数据
(正则):*select name,email from 表名 where email regexp '^.*[^@qq]\.com$';
二、like和regexp区别
like匹配整个列。如果被匹配的文本在列值中出现,like将不会找到它,相应的行也不被返回(除非使用通配符)。
而regexp在列值内进行匹配,如果被匹配的文本在列值中出现,regexp将会找到它,相应的行将被返回。这是一个非常重要的差别。