当前位置:   article > 正文

SQL通配符_sql like 一个字符

sql like 一个字符

一、首先说下LIKE命令都涉及到的通配符:

% 替代一个或多个字符

_ 仅替代一个字符

[charlist] 字符列中的任何单一字符

[^charlist]或者[!charlist] 不在字符列中的任何单一字符

其中搭配以上通配符可以让LIKE命令实现多种技巧:

1、LIKE’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。

2、LIKE’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。

3、LIKE’%en%’ 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)。

4、LIKE’_heryl’ 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。

5、LIKE’[CK]ars[eo]n’ 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson)。

6、LIKE’[M-Z]inger’ 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。

7、LIKE’M[^c]%’ 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。
二、SQL 中,通配符与 SQL LIKE 操作符一起使用。

不过,MySQL 、SQLite 只支持 % 和 _ 通配符,不支持 [^charlist] 或 [!charlist] 通配符( MS Access 支持,微软 office 对通配符一直支持良好,但微软有时候的通配符不支持 %,而是 *,具体看对应软件说明)。通配符和正则不是一回事。

MySQL 和 SQLite 会把 like ‘[xxx]yyy’ 的中括号当成普通字符,而不是通配符。

比如:

select * from persons WHERE City LIKE '[b]eijing'
  • 1

将查出 city 为 [B]eijing 的行,而不是 city 为 beijing 的行。

MySQL 中要完成 [^charlist] 或 [!charlist] 通配符的查询效果,需要通过正则表达式来完成。

select * from persons WHERE City REGEXP ‘[b]eijing’ SQLite不支持Regexp正则方法。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/610654
推荐阅读
相关标签
  

闽ICP备14008679号