解决mysql查询,in条件参数为带逗号的字符串,查询结果错误

解决mysql查询,in条件参数为带逗号的字符串,查询结果错误,第1张

如有以下sql:

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 left(name,CHARINDEX(',',NAME)-1)

FROM 表

逗号前就是逗号左边了、left函数

取指定字段某位置左边的字符串、

CHARINDEX(',',NAME)-1指定某字段中逗号开始的位置,-1是去除‘,’本身的位置

MYSQL

select substring_index(name,',',1)

from 表

截取字段值里第一个逗号左边的全部字符串

第一部分:

FIND_IN_SET()函数用法,

查询用逗号分隔的字段,

表A中 go_value字段的值是以逗号分割,

查询 go_value字段中含有3的行:

select * from A where find_in_set('3', go_value)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6118230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存