mysql中in条件使用字符串方式
作者:lizz666 时间:2024-01-28 02:24:55
mysql中in条件使用字符串
场景
当sql使用in作为条件时,使用一个参数满足查询条件,直接传入字符串无法满足条件。
select id,name from user where id in(?)
方法
使用FIND_IN_SET(str,strlist)函数
select id,name from user where FIND_IN_SET(id,#{strlist})
str
: 条件字段strlist
:匹配值集合
select id,name from user where FIND_IN_SET(id,'111,22,333')
mysql查询 in条件参数为带逗号的字符串,查询结果错误
如有以下sql:
SELECT
(
SELECT
GROUP_CONCAT(content)
FROM
account_limit_user ur
WHERE
ur.id IN (T1.limit_user)
GROUP BY
ur.id
) AS limit_user
FROM
account T1
WHERE
1 = 1
T1.limit_user 为account表中查询出来的值
‘9,8,4’
查询sql正确查询结果应为:
不可推荐 ,推销客户,推销客户
实际结果为:
不可推荐
原因:
在mysql中in里面如果是字符串的话,会自动转化成int类型的,内部使用了如下方法:
CAST('4,3' AS INT)
导致’4,3‘ 变成了4,所以上述查询sql结果只有第一个。
解决方案
FIND_IN_SET('查询的值(如:1)', '使用逗号隔开的字符串集合,如:('1,2,3')')
正确的sql
SELECT
(
SELECT
GROUP_CONCAT(content)
FROM
account_limit_user ur
WHERE
FIND_IN_SET(ur.id, T1.limit_user) > 0
) AS limit_user,
T1.limit_user limit_userid
FROM
account T1
WHERE
1 = 1
来源:https://lizz6.blog.csdn.net/article/details/114140357
标签:mysql,in条件,字符串
0
投稿
猜你喜欢
python 列表套json字典根据相同的key筛选数据
2022-06-01 08:52:02
JavaScript预解析及相关技巧分析
2024-04-10 10:57:32
JavaScript实现Ajax总结
2024-05-06 10:08:28
mysql 5.5.8的几个注意事项
2011-01-04 19:34:00
Symfony2框架创建项目与模板设置实例详解
2023-11-20 23:36:39
Python实现向QQ群成员自动发邮件的方法
2021-08-16 13:41:33
详解javascript常用工具类的封装
2024-05-11 09:36:38
golang elasticsearch Client的使用详解
2024-05-28 15:24:41
python 通过dict(zip)和{}的方式构造字典的方法
2023-10-03 00:05:12
Javascript中的arguments对象
2024-04-30 09:50:54
使用sklearn对多分类的每个类别进行指标评价操作
2022-04-20 17:19:39
Yii1.0 不同页面多个验证码的使用实现
2024-05-11 09:53:57
Python实现程序判断季节的代码示例
2022-04-04 13:30:22
Python中使用matplotlib模块errorbar函数绘制误差棒图实例代码
2022-11-09 17:01:42
pytorch 利用lstm做mnist手写数字识别分类的实例
2023-01-31 03:15:38
关于Python中的闭包详解
2022-04-18 02:12:46
python模糊图片过滤的方法
2022-07-01 04:37:16
asp如何对Access数据库进行压缩?
2009-11-19 21:20:00
ASP 改良版MD5、SHA256多重加密类(二次及多次)
2012-11-30 20:26:47
Python Dataframe常见索引方式详解
2023-06-21 21:03:25