加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL REGEXP:查询以特定字符或字符串开头的记录

发布时间:2021-05-23 14:51:31 所属栏目:MySql教程 来源:互联网
导读:其中,属性名表示需要查询的字段名称;匹配方式表示以哪种方式来匹配查询。匹配方式中有很多的模式匹配字符,它们分别表示不同的意思。下表列出了 REGEXP 操作符中常用的匹配方式。 选项说明例子匹配值示例 ^ 匹配文本的开始字符 ^b 匹配以字母 b 开头的字
其中,“属性名”表示需要查询的字段名称;“匹配方式”表示以哪种方式来匹配查询。“匹配方式”中有很多的模式匹配字符,它们分别表示不同的意思。下表列出了 REGEXP 操作符中常用的匹配方式。

选项 说明 例子 匹配值示例
^   匹配文本的开始字符   '^b' 匹配以字母 b 开头的字符串   book、big、banana、bike  
$   匹配文本的结束字符   'st$' 匹配以 st 结尾的字符串   test、resist、persist  
.   匹配任何单个字符   'b.t' 匹配任何 b 和 t 之间有一个字符   bit、bat、but、bite  
*   匹配零个或多个在它前面的字符   'f*n' 匹配字符 n 前面有任意个字符 f   fn、fan、faan、abcn  
+   匹配前面的字符 1 次或多次   'ba+' 匹配以 b 开头,后面至少紧跟一个 a   ba、bay、bare、battle  
<字符串>   匹配包含指定字符的文本   'fa' 匹配包含‘fa’的文本   fan、afa、faad  
[字符集合]   匹配字符集合中的任何一个字符   '[xz]' 匹配 x 或者 z   dizzy、zebra、x-ray、extra  
[^]   匹配不在括号中的任何字符   '[^abc]' 匹配任何不包含 a、b 或 c 的字符串   desk、fox、f8ke  
字符串{n,}   匹配前面的字符串至少 n 次   'b{2}' 匹配 2 个或更多的 b   bbb、bbbb、bbbbbbb  
字符串
{n,m}   匹配前面的字符串至少 n 次, 至多 m 次   'b{2,4}' 匹配最少 2 个,最多 4 个 b   bbb、bbbb  

MySQL 中的正则表达式与 Java 语言、PHP 语言等编程语言中的正则表达式基本一致。

查询以特定字符或字符串开头的记录 字符^用来匹配以特定字符或字符串开头的记录。
例 1 在 tb_students_info 表中,查询 name 字段以“J”开头的记录,SQL 语句和执行过程如下。 mysql> SELECT * FROM tb_students_info -> WHERE name REGEXP '^J'; +----+------+------+------+--------+-----------+ | id | name | age | sex | height | course_id | +----+------+------+------+--------+-----------+ | 4 | Jane | 22 | 男 | 162 | 3 | | 5 | Jim | 24 | 女 | 175 | 2 | | 6 | John | 21 | 女 | 172 | 4 | +----+------+------+------+--------+-----------+ 3 rows in set (0.01 sec) 例 2 在 tb_students_info 表中,查询 name 字段以“Ji”开头的记录,SQL 语句和执行过程如下。 mysql> SELECT * FROM tb_students_info -> WHERE name REGEXP '^Ji'; +----+------+------+------+--------+-----------+ | id | name | age | sex | height | course_id | +----+------+------+------+--------+-----------+ | 5 | Jim | 24 | 女 | 175 | 2 | +----+------+------+------+--------+-----------+ 1 row in set (0.00 sec) 查询以特定字符或字符串结尾的记录 字符$用来匹配以特定字符或字符串结尾的记录。
例 3 在 tb_students_info 表中,查询 name 字段以“y”结尾的记录,SQL 语句和执行过程如下。 mysql> SELECT * FROM tb_students_info -> WHERE name REGEXP 'y$'; +----+-------+------+------+--------+-----------+ | id | name | age | sex | height | course_id | +----+-------+------+------+--------+-----------+ | 1 | Dany | 25 | 男 | 160 | 1 | | 3 | Henry | 23 | 女 | 185 | 1 | | 7 | Lily | 22 | 男 | 165 | 4 | +----+-------+------+------+--------+-----------+ 3 rows in set (0.00 sec) 例 4 在 tb_students_info 表中,查询 name 字段以“ry”结尾的记录,SQL 语句和执行过程如下。

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!