有个需求是要查询字段中code前缀是H、M、81、82开头的
方法一 使用like和or
select * from zhy where code like 'H%' or code like 'M%' or code like '81%' or code like '82%';
方法二 使用正则表达式
select * from zhy where code REGEXP '^H|^M|^81|^82';
方法三 使用in
select * from zhy where left(code,2) IN ( 81,82 ) or left(code,1) IN ( 'H','M' );
方法四 使用FIND_IN_SET
select * from zhy where FIND_IN_SET(left(code,2),"81,82") or FIND_IN_SET(left(code,1),"H,M");
有个需求是要查询字段中code前缀是H、M、81、82开头的方法一 使用like和orselect * from zhy where code like 'H%' or code like 'M%',or code like '81%' or code like '82%';方法二 使用正则表达式select * from zhy where code REGEXP '^H|^M|^81|^82';方法三 使用inselect * from zhy where left(cod
2、使用like模糊
查询
会导致索引失效,在数据量大的时候会有性能问题
(1)尽量少以%或者_开头进行模糊
查询
通过explain执行计划,我们发现,使用like模糊
查询
时,如果不以%和_开头
查询
的话,索引还是有效的
以%或者_开头
查询
,索引失效
(2)使用覆盖索引
当
查询
的的条件和
查询
的结果都是索引中的字段的时候,这个索引我们可以称之为覆盖索引,这个时候,使用like模糊
如何实现
MySQL
查询
LIKE
多个
值
作为一名经验丰富的开发者,我很高兴能帮助刚入行的小白理解如何在
MySQL
中实现
查询
LIKE
多个
值
。在本文中,我将详细介绍整个流程,包括步骤、代码示例以及必要的注释。
首先,让我们通过一个流程图来了解整个操作流程:
#render_12_12230321-svg{font-fam...
比如需要这样的效果:
SELECT project_name,pre_sale_number from estate_project_info WHERE loc_area='海淀区' AND (pre_sale_number like '%2016%' or pre_sale_number like '%2017%')
可以使用 REGEXP 写成:
SELECT project...
LIKE “%a%b%c%”,这样匹配出的就是包含a,b,c三个关键词的记录 (三个关键词不在一起时) 不好用
mysql
> select count(1) from dm_addr where addr like '%海口市%' and addr like '%振兴路%';
我们写SQL语句的时候, 对于select ...where ... 类型的语句,应该把
查询
结果范...
mysql
多重like 解决方案方案一、使用like方案二、使用REGEXP 正则匹配方案三、使用group_concat多重模糊匹配
方案一、使用like
查询
user包含小李并且小王的相关数据
SELECT * FROM user WHERE name LIKE '%小王%' or name like '%小王%
方案二、使用REGEXP 正则匹配
查询
user包含小李并且小王的相关数据
SELECT * FROM user WHERE name REGEXP '小王|小王'
方案三、使用grou
mysql
用
多个
查询
结果进行模糊匹配,类似like匹配
多个
查询
结果。
like子句方便做对单个
值
的匹配,如果要对一个
查询
结果集都在一个
查询
语句里匹配,可以用
mysql
的正则表达式搭配group_concat函数做到。
先看数据表:
目标是在user表中,匹配出姓氏在family_info表中的记录。
使用group_concat函数来生成任意字符串左匹配的正则表达式字符串:
select group_concat(concat('^',fi.family_name) SEPARATOR '|') fr
在
MySQL
中,当需要进行模糊
查询
,并且
查询
多个
值
的时候,可以使用`like`语句结合`or`运算符。这种方式可以满足特定条件的模糊
查询
需求。
一种常见的做法是使用`like`语句和`or`运算符来逐个匹配每个需要模糊
查询
的
值
。例如,假设我们需要
查询
`name`字段以'a'或'b'开头的记录,可以使用以下语句:
SELECT * FROM table_name WHERE name LIKE 'a%' OR name LIKE 'b%';
这样可以
查询
到以'a'或'b'开头的记录。
另外,还有一种更灵活的方法是使用左连接来将
查询
表与需要匹配的
多个
值
进行连接,然后使用`like`模糊匹配作为连接条件,并对连接结果进行非空过滤。例如,假设我们有一个表`user`,其中有一个名为`name`的字段,我们需要
查询
以`fi.family_name`开头的记录,可以使用以下语句:
SELECT u.*, fi.* FROM `user` u LEFT JOIN family_info fi ON u.name LIKE CONCAT(fi.family_name, '%');
这样可以
查询
到`user`表中`name`字段以`fi.family_name`开头的记录。
总的来说,
MySQL
提供了多种方法来实现模糊
查询
并同时匹配
多个
值
,可以根据具体需求选择适合的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [
MySQL
学习笔记2-高级
查询
与存储.md](https://download.csdn.net/download/weixin_52057528/88240999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [
MySQL
数据库一个字段对应
多个
值
得模糊
查询
](https://blog.csdn.net/yhj198927/article/details/129039066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [
mysql
模糊匹配
多个
值
](https://blog.csdn.net/qq_38066290/article/details/124100742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
qq_39435472:
mysql外键的4种选项
三尺微命 一介书生:
SecureCRT和SecureFX
墨兰公子:
tried to access field com.mysql.cj.CharsetMapping.COLLATION_INDEX_TO_COLLATION_NAME from class io.de
uniapp微信小程序授权订阅消息