[英]Searching multiple values in a Comma-Separated MySQL column in a single query
[英]MYSQL query multiple comma separated strings
我將數據存儲在 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
這對 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]
然后在循環內,查看每個數組的第一個元素,找到最小的,根據它是哪個數組打印字母,迭代該數組的指針......繼續直到你用完所有數字
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.