首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql中的like语句改用

在MySQL中,LIKE语句用于在WHERE子句中进行模糊匹配。它允许你使用通配符来搜索列中的特定模式。LIKE语句的基本语法如下:

代码语言:txt
复制
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

基础概念

  • 通配符
    • %:表示任意数量的字符(包括零个字符)。
    • _:表示单个字符。

相关优势

  • 灵活性:LIKE语句提供了灵活的模式匹配功能,适用于各种搜索需求。
  • 简单易用:语法简单,易于理解和实现。

类型

  • 前缀匹配:例如,LIKE 'abc%'匹配以"abc"开头的所有字符串。
  • 后缀匹配:例如,LIKE '%abc'匹配以"abc"结尾的所有字符串。
  • 中间匹配:例如,LIKE '%abc%'匹配包含"abc"的所有字符串。

应用场景

  • 搜索用户输入的模糊查询,如搜索用户名、地址等。
  • 数据清洗和数据验证。

常见问题及解决方法

1. 性能问题

问题:当数据量较大时,LIKE语句的性能可能会受到影响,尤其是使用前缀为%的模糊查询。 原因:索引无法有效利用。 解决方法

  • 尽量避免使用前缀为%的模糊查询。
  • 使用全文索引(如MySQL的FULLTEXT索引)来提高搜索性能。
代码语言:txt
复制
ALTER TABLE table_name ADD FULLTEXT(column_name);
SELECT * FROM table_name WHERE MATCH(column_name) AGAINST('pattern');

2. 大小写敏感性

问题LIKE语句默认是大小写敏感的。 原因:MySQL的字符集和排序规则。 解决方法

  • 使用BINARY关键字进行大小写敏感匹配。
代码语言:txt
复制
SELECT * FROM table_name WHERE BINARY column_name LIKE 'Pattern';
  • 更改列的字符集和排序规则为大小写不敏感。
代码语言:txt
复制
ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

示例代码

假设有一个用户表users,包含username列,我们希望搜索所有包含"john"的用户名:

代码语言:txt
复制
SELECT * FROM users WHERE username LIKE '%john%';

如果希望搜索所有以"john"开头的用户名:

代码语言:txt
复制
SELECT * FROM users WHERE username LIKE 'john%';

参考链接

通过以上内容,你应该对MySQL中的LIKE语句有了全面的了解,包括其基础概念、优势、类型、应用场景以及常见问题的解决方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mysql 模糊查询 like 语句

mysql模糊查询like语句 like语句用于模糊查询符合条件语句 %代表 若干个字符 _代表一个单词 查询使用like语句语法是: select 字段名 from 表名 where 字段名...like '需要模糊查询对象' 如果需要查询第二位字母是q字段,那么like后面可以跟'_q%' 如果需要模糊查询字符当中有'_',那么可以使用转义字符。...如果需要查询第二位字符是_字段,那么like后面可以跟 '__%' 例如,我们现在有如下一张表 +-------+--------+----------+------+------------+-...'M' 的人姓名时候,我们可以使用以下语句进行查询。...select ename from emp where ename like '_m%'; 使用上述语句查询结果为 +-------+ | ename | +-------+ | SMITH | +-

5.2K30
  • Mysql常用sql语句(9)- like 模糊查询

    测试必备Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 like应该是最常用查询条件了 必须滴掌握!...like语法格式 LIKE '字符串' NOT LIKE '字符串' NOT:取反,不满足指定字符串时匹配 字符串:可以是精确字符串,也可以是包含通配符字符串 LIKE支持 和 _ 两个通配符...知识点 匹配字符串必须加单引号或双引号 like "%test%" _ 通配符查询栗子 只能代表单个字符,字符长度不能等于0,即字符长度必须等于1;相对于 % 来说, _ 肯定没这么常用 _...like 区分大小写栗子 默认情况下,like匹配字符串是不区分大小写; 和 like "TEST1" 匹配结果是一样 like "test1" 如果需要区分大小写,需要加入 关键字 binary...注意头部、尾部多余空格: 是不会匹配到“test1” " test% " 注意NULL:通配符是不能匹配到字段为NULL记录 不要过度使用通配符:因为Mysql对通配符处理速度会比其他操作花费更长时间

    2.8K20

    mysql更改密码首选语句_MySQL如何更改用户密码?(代码实例)「建议收藏」

    MySQL,可以使用3种不同语句改用户帐户密码:UPDATE statementSET PASSWORD statementALTER USER statement....现在让我们学习如何使用上面提到三个SQL语句在SQL改用户密码: 1.使用SET PASSWORD语句更改MySQL用户密码 要使用SET PASSWORD语句改用户密码,第一个要求是该帐户至少需要具有...你要使用SET PASSWORD语句将用户帐户“gfguser1”密码更改为“newpass”,应执行以下代码语句: 语法: 2.使用ALTER USER语句更改MySQL用户密码 更改用户帐户密码第二种方法是使用...要使用Alter User语句将用户帐户“gfguser1”密码更改为“newpass”,语法如下所示: 语法: 3.使用UPDATE语句更改MySQL用户密码 更改用户帐户密码第三种方法是使用UPDATE...FLUSH PRIVILEGES语句用于从mysql数据库grant表重新加载权限。

    5.7K20

    MySQL 模糊查询:MySQL 数据库 like 语句通配符模糊查询小结

    MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结...文章目录 MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结...、like 语句应用场景 2.2、模糊查询剖析 2.3、正确语句 三、MyBatis like 模糊查询及关键字区分 总结 ---- 前言 今天在使用 MySQL 语句执行增删改查操作时,控制台报出了以下错误...处理。 二、like 语句使用通配符模糊查询剖析 2.1、like 语句应用场景 使用 like 通配符进行模糊查询是我们在项目中常遇到,比如在搜索框对于数据模糊查询。...2.2、模糊查询剖析 在 SQL 语句中无法直接对'%?%'进行解析,所以我们需要对连接字符串进行处理,使用动态拼接concat()方法将'%?%'内容进行连接,然后再执行增删改查操作。

    14.8K40

    MySQL 数据库 like 语句通配符模糊查询小结

    MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结...like 语句应用场景 2、模糊查询剖析 3、正确语句 三、MyBatis like 模糊查询及关键字区分 总结 ---- 前言 今天在使用 MySQL 语句执行增删改查操作时,控制台报出了以下错误...处理。 二、like 语句使用通配符模糊查询剖析 1、like 语句应用场景 使用 like 通配符进行模糊查询是我们在项目中常遇到,比如在搜索框对于数据模糊查询。...2、模糊查询剖析 在 SQL 语句中无法直接对'%?%'进行解析,所以我们需要对连接字符串进行处理,使用动态拼接concat()方法将'%?%'内容进行连接,然后再执行增删改查操作。...同时补充了在 MyBatis 对模糊查询操作以及不同关键字区分。代码之路漫漫,望诸君细致。 ? ---- 我是白鹿,一个不懈奋斗程序猿。望本文能对你有所裨益,欢迎大家一键三连!

    3.8K31

    MySQLjoin语句

    MySQLjoin语法 在MySQL,join语句想必大家都不陌生,今天我们围绕join语句展开,说一些可能平时不关注知识点。...整个join语句执行过程如下: a、从表t1拿到一条记录字段a值 b、拿a值去t2表查找,查找匹配行 c、找到结果,和表t1行拼接成一行记录,作为结果一条记录 d、重复以上三个步骤,直到...在这个过程,因为t2表使用到了索引,而且执行过程是循环执行,所以MySQL把这种情况下join查询称之为index Nested-Loop join。...这里,我们简单推一下复杂度公式: 假设驱动表记录为M,被驱动表值是N,因为被驱动表使用了索引,在一棵b+树上索引查找效率近似logN,因为我们语句时select * ,要牵扯到回表到聚集索引查询所有字段...最后介绍下,MySQL通过下面的参数来控制join buffer大小: mysql> show variables like '%join_buffer%'; +------------------

    2.1K10

    mysql优化篇:wherelike和=性能分析

    使用方法也很简单,即 explain + sql语句 ,例如: explain select * from info where id like '12345'; 具体对于explain关键字介绍我会将在以后博客总结...mysql优化篇:wherelike和=性能分析 小伙伴通过对比可以看到两条返回结果type字段和Extra字段数据有所不同,那为什么不同,他们所代表含义是什么呢?...mysql优化篇:wherelike和=性能分析 有的小伙伴该问了那非索引字段呢?...'张飞'; 除了"="和like同样两条语句,让我们运行一下: "=": ?...mysql优化篇:wherelike和=性能分析 like: ? mysql优化篇:wherelike和=性能分析 可以看出当非索引字段时like和"="是一样,性能上也没有差别。

    1.7K30

    其实 MySQL like 关键字也能用索引!

    今天,松哥在前文基础上,再来和大家分享一条索引规则,一起来学习下。 我们常说,MySQL like 要慎用,因为会全表扫描,这是一件可怕事!...大家看到了,在上面的执行计划like 'j%' 其实也用到了索引,那么如果是 like '%j' 或者 like '%j%' 会用到索引吗?我们来看一个例子: 咦!看执行计划似乎也用上索引了!...回顾第一小节最后 like '%j' 和 like '%j%' 执行计划,不就是上面这个吗!...最后 Extra 为 Using where 表示 MySQL 首先从数据表(存储引擎)读取记录,返回给 MySQL server 层,然后在 server 层过滤掉不满足条件记录。 3....小结 好啦,通过这样两个小案例,松哥和大家分享了 MySQL 索引最左匹配原则,也希望小伙伴们能够藉此理解索引存储结构。

    3.3K20

    Sql语句Mysql执行流程

    查询缓存: 执行查询语句时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。    ...优化器: 按照 MySQL 认为最优方案去执行。   执行器: 执行语句,然后从存储引擎返回数据。   ...2) 查询缓存(MySQL 8.0 版本后移除)             查询缓存主要用来缓存我们所执行 SELECT 语句以及该语句结果集。             ...连接建立后,执行查询语句时候,会先查询缓存,MySQL 会先校验这个 sql 是否执行过,以 Key-Value 形式缓存在内存,Key 是查询预计,Value 是结果集。...MySQL 查询不建议使用缓存,因为查询缓存失效在实际业务场景可能会非常频繁,假如你对一个表更新的话,这个表上所有的查询缓存都会被清空。

    4.7K10
    领券