2014-08-28 55 views
0

我有一个逗号分隔的数字像'46,95,44'这是GROUP_CONCAT如何转换逗号分隔的数字为整数MySQL查询GROUP_CONCAT

select GROUP_CONCAT (prodid) from tablename where condition; 

我想将其转换为所获得的输出整数,使得能够使用这个作为输入到“中”操作

select * from table2 where prodid in 
(
    select GROUP_CONCAT (prodid) from tablename where condition 
); 

上述查询在所述逗号分隔的列表中的第一个号码仅导致碱。如何将列表转换为整数

output : 46,95,44 

回答

1

取出group_concat

select * from table2 
where prodid in 
(
    select prodid 
    from tablename 
    where condition 
); 

group_concat产生字符串ID,但你需要IN条款单独值。

随着group_concat查询编译为

select * from table2 
where prodid in ('46,95,44'); 

,但你需要

select * from table2 
where prodid in ('46','95','44'); 
+0

如果返回多个行会弹出一个错误“从表名 WHERE条件选择的产品编号 ”。 – user2651906 2014-08-28 11:21:34

+0

然后错误来自别的东西。 'IN'对多个记录没有问题。什么是完整的错误信息? – 2014-08-28 11:22:31

+0

它没有弹出错误。谢谢 – user2651906 2014-08-28 11:26:39

相关问题