MySQL关于like关键字的使用

关于MySQL模糊搜索的使用情况分析:

1.假设现在有这样一个需求,数据库中的字段原本是一个值,现在需要改成多个值,以列表的形式保存在数据库当前的字段里。

假设数据库里已经改为了列表的格式字段,我们现在要根据这个字段去查询数据,可以使用like关键字,例如:

SELECT * FROM `user` WHERE test_str LIKE '%222%';

结果如下:

2.假设这个字段可能关联了多个表,或者说这个字段是属于关联字段,那么之前用到这个字段的所有地方就都需要修改。否则可能就会报错。

还是使用like关键字,但是需要和CONCAT函数使用:

SELECT u.* from user u JOIN test1 t ON u.test_str LIKE CONCAT('%', t.user_id, '%');

如图:

test1表数据:

查询结果:

关于concat函数的用法:

将多个内容「拼接」成1个字符串(拼接的内容可以是一个查询语句的结果)。

语法:

concat(str1,str2,...) :

总结:

在使用on关键字关联的时候,如果您使用 LIKE '%t.user_id%'进行查询,实际上是在查找包含字面字符串 '%t.user_id%' 的记录,而不是查找包含 test1 表中的 user_id 列值的记录。所以需要concat函数去连接使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值