2016-06-07 30 views
1

我正在寻找最佳的方法来做到这一点: 我有列ID,网络1,网络2 .... 30的表。 列中的值为true或false。 当值为true时,我想获取所有行的网络号码字符串。将多列添加到一个字符串

这样的:

"5,7,8" 

当network5和network7和network8值是真,其他都是假的。

可以请您指教吗?

+0

结合你有没有考虑使用MySQL的['SET'(http://dev.mysql.com/doc/en/set.html)数据类型呢? – eggyal

+0

或者是一个标准化(商店ID - 网络对在他们自己的记录中) – Shadow

回答

2

您可以尝试使用多种IF的与CONCAT()

SELECT t.id, 
     concat(IF(t.network1 = 'TRUE','1,',''), 
       IF(t.network2 = 'TRUE','2,',''), 
       IF(t.network3 = 'TRUE','3,',''), 
       IF(t.network4 = 'TRUE','4,',''), 
       ..... 
FROM YourTable t 
相关问题