解决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

length:

是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符

char_length:不管汉字还是数字或者是字母都算是一个字符

用这2个,具体看你的需求了,,,

你是要去除,?然后再看长度?

SELECT

LENGTH(REPLACE('1,2,3,4',',','')),根据需求替换char_length就可以了

SELECT left(name,CHARINDEX(',',NAME)-1)

FROM 表

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

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

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

MYSQL

select substring_index(name,',',1)

from 表

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存