mysql like escape_MySQL like 和 escape

LIKE操作符常用于模式匹配查询数据。以正确的方式使用LIKE运算符对于提高查询性能至关重要。

LIKE操作符允许您从基于指定的模式选择表中的数据。因此,LIKE操作符经常用于SELECT语句的WHERE子句中。

MySQL提供了两个通配符与LIKE操作符一起使用:百分比 %和下划线_。

percent(%)通配符:允许您匹配任何零个或多个字符的字符串。

下划线(_)通配符:允许您匹配任何单个字符。

MySQL LIKE示例

让我们练习一些使用LIKE操作符的例子。请参employees见下表。

bfca9b96e850ff612580453a0b057bd4.png

MySQL LIKE 百分号(%)通配符

假设要查找名字以字符a开头的员工,可以在模式匹配的结尾处使用百分比(%)通配符,如下所示:

SELECT

employeeNumber, lastName, firstName

FROM

employees

WHERE

firstName LIKE 'a%';

结果如下:

d3a52f2001d8562c9d12be59a37faeb9.png

MySQL扫描整个employees表以查找名字以字符a开头,后跟任意数量字符的员工。

如果要查找名字以on结尾的员工,可以在模式匹配查询中使用通配符%开头,“on”结尾的组合, 如:

SELECT

employeeNumber, lastName, firstName

FROM

employees

WHERE

lastName LIKE '%on';

结果如下:

17edbde66ce1140f9ea2366973aa41d3.png

如果你要查找名字含有on的员工,则可以使用 like '%on%',如:

SELECT

employeeNumber, lastName, firstName

FROM

employees

WHERE

lastname LIKE '%on%';

结果如下:

3ec16cbcac0d0c272ac59b78225cfa30.png

MySQL LIKE通配符下划线(_)

如果要查找姓名以T开头,m结尾并且名字为三个字符的员工,可以使用下划线通配符来构造一个SQL查询语句,如:

SELECT

employeeNumber, lastName, firstName

FROM

employees

WHERE

firstname LIKE 'T_m';

结果如下:

a4dc76658fdfdbaa3706fd8c6289b8f9.png

MySQL LIKE运算符与NOT运算符

MySQL允许您结合NOT运算符和LIKE运算符来查找不匹配特定模式的字符串。

假设要查找姓氏不以字符B开头的员工,可以使用 NOT LIKE 模式匹配:

SELECT

employeeNumber, lastName, firstName

FROM

employees

WHERE

lastName NOT LIKE 'B%';

结果如下:

56ee3e27b793d9ce2c7d866349cacaed.png

请注意,如果LIKE运算符的查询模式使用的是字母,那么它是不区分大小写的,因此b%和B%两个型态查询产生的结果是相同的。

MySQL LIKE与ESCAPE

有时,要匹配的模式包含通配符,例如10%,_20等。在这些情况下,可以使用ESCAPE子句指定转义字符,以便MySQL将通配符解释为文字字符。如果没有明确指定转义字符,默认的转义字符是反斜杠"\"。

例如,如果要查找products表中productCode字段包含字符串_20的产品,则可以使用模式%\_20%查询:

SELECT

productCode, productName

FROM

products

WHERE

productCode LIKE '%\_20%';

或者也可以指定一个不同的转义字符。例如,通过ESCAPE子句使用 $ 作为转义符:

SELECT

productCode, productName

FROM

products

WHERE

productCode LIKE '%$_20%' ESCAPE '$';

结果如下:

18b551c95726a138e0c13d4085c0410e.png

模式%$_20%匹配包含_20字符串的任何字符串。

LIKE语句会扫描表中的所以行,因此,索引对优化like语句来说没有任何效果。所以,使用LIKE操作符查询大量数据时,其性能非常低。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值