SQL常用语句--模糊查询REGEXP

        REGEXP 是正则表达式(regular expression) 的缩写 . 正则表达式在搜索字符串时非常强大. 它允许我们搜索更复杂的模式。

模糊匹配

1)包含特定字符串

SELECT *
FROM customers
WHERE last_name REGEXP 'field'  -- 查找名字中带field的记录

2)我们可以用 ‘^’ 表示字符串的开头,

SELECT *
FROM customers
WHERE last_name REGEXP '^field' -- 表示我们的姓氏必须以field开头

3)我们还用美元符号 $ 代表字符串末尾,

SELECT *
FROM customers
WHERE last_name REGEXP 'field$' -- 表示我们的姓氏必须以field结尾

搜寻多个单词

表示查询以field开头的姓氏或者姓氏中含有mac或者姓氏中含有rose

SELECT *
FROM customers
WHERE last_name REGEXP '^field|mac|rose'

假设你想搜寻姓氏里有e的顾客,

        如果你想要确保在e前要有g或者i两者之一, 这时需要用到方括号[],在括号里加上多个字母, 比如g,I,m,对应了任何姓氏里有ge或者ie或者me的顾客.

SELECT *
FROM customers
WHERE last_name REGEXP '[gim]e' -- 可以用 ‘[a-h]e’ 表示 ‘[abcdefg]e’.

总结:

^:beginning
$:end
|:logical or
[abcd]:使用 [] 匹配任意在括号里列举的单字符.
a-f:表示 [abcdefg], - 代表一个范围.

 

 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL 模糊查询可以使用 `LIKE` 关键字,语法如下: ``` SELECT column1, column2, ... FROM table_name WHERE column_name LIKE pattern; ``` 其 `column_name` 是需要进行模糊匹配的列名,`pattern` 是匹配的模式,可以使用通配符 `%` 来表示任意字符,例如: - `%keyword%` 表示包含指定关键字的字符串 - `keyword%` 表示以指定关键字开头的字符串 - `%keyword` 表示以指定关键字结尾的字符串 例如,查询名字包含 "John" 的员工信息,可以使用以下 SQL 语句: ``` SELECT * FROM employees WHERE name LIKE '%John%'; ``` ### 回答2: MySQL是一个开源的关系型数据库管理系统,通过使用MySQL提供的模糊查询语句,可以实现根据一定的模式或条件来匹配数据的查询需求。 MySQL提供了两种主要的模糊查询语句,分别是通配符查询和正则表达式查询。 通配符查询使用通配符来匹配模式的一个或多个字符。在MySQL常用的通配符有两个: 1. 百分号(%):表示任意数量的字符,可以是0个、1个或多个字符。 2. 下划线(_):表示任意单个字符,可以用来替代一个字符。 下面是使用通配符查询的示例: SELECT * FROM table_name WHERE column_name LIKE '模糊查询%'; 这个语句会查询所有包含以“模糊查询”开头的记录。 正则表达式查询是使用正则表达式来匹配模式的查询语句。在MySQL,可以使用REGEXP或RLIKE关键字来进行正则表达式查询。 下面是使用正则表达式查询的示例: SELECT * FROM table_name WHERE column_name REGEXP '^[A-Za-z]+$'; 这个语句会查询所有只包含英文字母的记录。 以上是对MySQL模糊查询语句的简单介绍,使用这些语句可以更灵活地满足特定的匹配需求。需要根据具体情况进行适当的调整和组合。 ### 回答3: MySQL模糊查询语句是通过使用通配符来匹配含有特定字符或字符串的数据。在MySQL常用的通配符有"%"和"_"。 "%"代表任意字符的任意个数,可以放在搜索关键词的前面、间或后面。比如,使用"%"进行模糊查询,可以匹配包含指定字符的任意字符或字符串。 "_"代表一个任意字符,可以放在搜索关键词的间或者前后。比如,使用"_"进行模糊查询,可以匹配只有一个字符和指定字符结合的字符串。 以下是一些例子,说明如何使用模糊查询语句: 1. 查询姓张的所有人 SELECT * FROM 表名 WHERE 姓名 LIKE '张%'; 这个查询语句可以匹配姓张的所有人,无论后面是什么字符或字符串。 2. 查询名字包含"明"的人 SELECT * FROM 表名 WHERE 姓名 LIKE '%明%'; 这个查询语句可以匹配名字包含"明"的任意人,无论前后有什么字符或字符串。 3. 查询第二个字母是"i"的所有名字 SELECT * FROM 表名 WHERE 姓名 LIKE '_i%'; 这个查询语句可以匹配第二个字母是"i"的所有名字,第一个字符可以是任意字符。 需要注意的是,模糊查询可能会导致性能下降,因为它需要对所有符合条件的数据进行匹配,尤其是对大表来说。为了提高查询效率,可以考虑合理使用索引、尽量减少通配符的使用,或者使用全文搜索等其他技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值