MYSQL查询多个逗号分隔的字符串

时间:2012-11-22 17:39:07

标签: php mysql csv

我的数据存储在MYSQL数据库中,如下所示:

 id    t_id     type    color       Y        S       M          L   
  2    2606      2    Black DNA   1,5,8    4,2,6    7,3,9    10,11,12   

我希望查询能够像PHP一样返回:

总数:

Black DNA

1 (Y)  
2 (S)  
3 (M)  
4 (S)  
5 (Y)  
6 (S)  
7 (M)  
8 (Y)  
9 (M)  
10 (L)  
11 (L)  
12 (L)  

我正在使用Joomla 2.7,这是我在PHP中尝试过的:

$query = "SELECT DISTINCT(e.id) as id, e.color, GROUP_CONCAT(e.S) as small FROM  #__bl_equipment as e WHERE e.type = 4 AND e.t_id = 2606";
       $db->setQuery($query);
    $equip1 = $db->loadObjectList();


<table>

<?php foreach($this->equip1 as $equip){

echo '<tr><td>';
echo $equip->color;
echo '</td><td>';
echo $equip->small;
echo '</td></tr>';}

?>


</table>

只有我能得到的结果:

黑色DNA 1,2,3

1 个答案:

答案 0 :(得分:-1)

对于SQL来说太复杂了(甚至可能怀疑它)

我会做以下事情 - 获取Y,S,M和L列 - 使用逗号解析每个(因此获得数字)并将它们转换为数组 - 对每个

进行排序

所以现在你应该有像

这样的东西

y_numbers = [1,5,8]

s_numbers = [2,4,6]

m_numbers = [3,7,9]

l_numbers = [10,11,12]

然后在循环中,查看每个数组的第一个元素,根据它所在的数组找到最小的打印字母,迭代该数组的指针......继续直到你已经用完所有数字