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

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

作者: 掘金_蒋老湿 | 来源:发表于2019-03-26 09:49 被阅读0次

如有以下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

相关文章

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

    如有以下sql: T1.limit_user 为account表中查询出来的值 ‘9,8,4’查询sql正确查询结...

  • MySQL远程带条件导出数据

    MySQL远程带条件导出数据 远程查询结果导出到本地(query.sql为查询语句):

  • ES-查询语句说明

    查询所有命令: 结果 带参数查询: 分页查询:

  • MySQL字符串自动转数值类型时的机制

    新建一张测试表,插入几条测试数据 执行查询 查询为空! 查询结果:如图2 结论: mysql可以把字符串自动转为数...

  • mysql查询保持in的顺序

    目的:解决mysql的in语法查询顺序问题 mysql数据库总,使用in语句查询,查询结果默认会根据主键id排序。...

  • MySQL的多表联查

    嵌套查询:一个查询的结果是另外sql查询的条件 如:查询stu表中年龄最大的是谁? mysql> select *...

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

  • sql 常用的分组查询

    postgre postgresql 查询集合结果用逗号分隔返回字符串处理 转载 https://blog.51c...

  • mongo查询

    带条件的单个查询 查询多个条件 and 查询多个条件 or 查询大于年龄的一个值 gt 查询小于 $lt 查询条数...

  • mysql优化

    MYSQL优化 为查询缓存优化你的查询 EXPLAIN你的SELECT查询。根据结果给出分析相应的查询优化 当只要...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/tdbwvqtx.html