您当(dang)前的(de)位置:微笑(xiao)人生上海娱乐网 微笑人生 正文
mysql 正则表达式查询含有非数字和字符的记录
发布时间(jian):2018-05-10 16:48:36点击(ji):3687字号:T|T
比如我们有(you)一张(zhang)school表,里面有(you)一个字(zi)(zi)段county_name,现(xian)在我们要(yao)查询county_name字(zi)(zi)段中(zhong)包含(han)a-w字(zi)(zi)母和数字(zi)(zi)以外字(zi)(zi)符的(de)记录,那(nei)么sql该(gai)如何写(xie)呢?请(qing)看下面的(de)写(xie)法:
select * from info where name regexp '[^a-w0-9]';
mysql中正则表达(da)式使用regexp关键(jian)字(zi),[^a-w0-9]表示匹(pi)配除了a-w字(zi)母和数字(zi)以外的字(zi)符。
下面向大(da)家介绍(shao)mysql正则表达式的(de)其他使用(yong)实例:
匹配名称含有1000的所有行
SELECT * FROM a1 WHERE name regexp '1000'
匹(pi)配以000结尾的所(suo)有行,(.正则(ze)中表(biao)示:匹(pi)配任(ren)意一个字符)
SELECT * FROM a1 WHERE name regexp '.000'
Mysql正则大小写都会匹配,为区分大小写可使用binary
关键字,如:
SELECT * FROM a1 WHERE name LIKE binary '%J%' #使用LIKE+通配符匹配大写J SELECT * FROM a1 WHERE name regexp binary 'j' #使用正则匹配小写j
|
为正则表达式的OR
操作符,表示匹配其(qi)中之一(yi)
SELECT * FROM a1 WHERE name regexp binary 'a|j|G'
匹配特定字符,使用[]
括(kuo)起来的字符,将会匹配其中任意单个字符。
SELECT * FROM a1 WHERE name regexp '[12]st'
以(yi)上(shang)'[12]st'正则(ze)表达式,[12]定义(yi)一组字符,它的意思(si)是匹配1或2
^ 匹配字符开始的部分
select * from info where name regexp '^L'; //从info表name字段中查询以L开头的记录
$ 匹配字符结束的部(bu)分
select * from info where name regexp 'c$'; //从info表name字段中查询以c结尾的记录
. 匹配字符串中(zhong)的任意(yi)一个(ge)字符,包括回(hui)车和换(huan)行
select * from info where name regexp '^L..y$'; //从info表name字段中查询以L开头y结尾中间有两个任意字符的记录
[字(zi)符集合(he)]匹配字(zi)符集合(he)中的任意(yi)字(zi)符
select * from info where name regexp '[ceo]'; //从info表name字段中查询包含c、e、o三个字母中任意一个的记录
[^字符集合(he)(he)]匹配除了字符集合(he)(he)外的任意字符
select * from info where name regexp '[^a-w0-9]'; //从info表name字段中查询包含a-w字母和数字以外字符的记录
s1|s2|s3 匹配s1s2s3中的任意一(yi)个
select * from info where name regexp 'ic'; //从info表name字段中查询包含'ic'的记录
* 代表(biao)多个该字符前的字符,包(bao)括0个或(huo)1个
select * from info where name regexp 'a*c'; 从info表name字段中查询c之前出现过a的记录
+ 代(dai)表多个该(gai)字(zi)符前的字(zi)符,包括(kuo)1个
select * from info where name regexp 'a+c';//从info表name字段中查询c之前出现过a的记录
字(zi)符串{N} 字(zi)符串出(chu)现(xian)N次
select * from info where name regexp 'a{3}'; //从info表name字段中查询出现过a3次的记录
字(zi)符串(chuan){M,N}字(zi)符串(chuan)最少出现M次,最多出现N次
select * from info where name regexp 'ab{1,3}'; //从info表name字段中查询ab出现最少1次最多3次的记录
MYSQL中自带通配(pei)符(LIKE关键词),%可(ke)以表(biao)示(shi)(shi)任意长度的字符(包括0), -可(ke)以表(biao)示(shi)(shi)单个字符
关键字词: (编辑(ji):微心情)
上一篇:微信小程序 wx:key
下一篇:已经没有了