mysql - 如何在 IN() 函数内部使用 group_concat ?

标签 mysql

SELECT ui.* 
FROM users_table as ui 
WHERE ui.id 
IN 
(
SELECT Group_concat
(REPLACE
(REPLACE
(REPLACE(ac.user_id,',,','-'),',',''),'-',',')) AS au_users 
FROM email_access as uu 
LEFT JOIN bill_authorizationcodes AS ac 
ON ac.customer_id = uu.cust_id 
WHERE uu.user_id = 2 
AND ac.user_id !=""
)

它没有选择所有的 ID 详细信息... 它只选择第一个ID....

最佳答案

您使用了错误的方法。 In 不需要一个带有逗号分隔值的字符串,而是一个值列表。只需使用

SELECT ui.* FROM users_table as ui 
WHERE ui.id IN (
    SELECT ac.user_id 
    FROM email_access as uu 
    LEFT JOIN bill_authorizationcodes AS ac ON ac.customer_id = uu.cust_id 
    WHERE uu.user_id = 2 AND ac.user_id !="")

关于mysql - 如何在 IN() 函数内部使用 group_concat ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23098751/

相关文章:

mysql - 如何选择第一个包含Y,第二个包含N的mysql列值

python - 将列表的值插入到mysql Python的不同列中

php - MySQL 多参数

php - Laravel 自定义模型类 - 字段没有默认值

mysql - AWS RDS只读机器--如何添加新用户

mysql - MySQL中将逗号分隔的输入参数转换为int行的函数

sql - Mysql 从另一个存储过程调用存储过程

mysql 选择正则表达式,如 "full-stop"

mysql - 小数和整数数据类型上的“Not Null”语法错误

php - MySQL事务-如何分组?