您可以使用FIND_IN_SET(col, 'csv as string')
函數來獲得所需的結果。
例:
mysql> select find_in_set(2, '11,12,13,14,15,2');
+--------------------------------------+
| find_in_set(2, '11,12,13,14,15,2') |
+--------------------------------------+
| 6 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql> select find_in_set(2, '2,11,12,13,14,15,2');
+----------------------------------------+
| find_in_set(2, '2,11,12,13,14,15,2') |
+----------------------------------------+
| 1 |
+----------------------------------------+
1 row in set (0.00 sec)
mysql> Select FIND_IN_SET(6, '1,12,3,14,5,16,7,18,9,0,2,13,4,15,6,17,8');
+--------------------------------------------------------------+
| FIND_IN_SET(6, '1,12,3,14,5,16,7,18,9,0,2,13,4,15,6,17,8') |
+--------------------------------------------------------------+
| 15 |
+--------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
爲您查詢,您可以通過級聯輸出'8,10,27'
與other_table的列比較。
Select find_in_set(other_table.col_name, '8,10,27');
請參閱要: MySQL String Functions: FIND_IN_SET()
好!幾乎在那裏,感謝代碼。我做了以下一半工作:它顯示正確的東西一次,然後它重複相同的許多ID在CSV ...:SELECT trips.Id,GROUP_CONCAT('',(SELECT loads.load_id FROM'loads' WHERE loads.Id IN(SELECT GROUP_CONCAT(trips_loads_rel.load_id,'')AS tmp FROM'trips_loads_rel' WHERE trips_loads_rel.trip_id = trips.Id)))AS從FROM'trips'跳過GROUP BY trips.Id –
對不起......剛試過,如果我在第一個GROUP_CONCAT中放置DISTINCT,它只會顯示一個結果。例如,「L131119-27」是負載ID之一,它應該與L131119-27,L131119-21等一樣,即與匹配的許多負載ID :(無DISTINCT,因爲它重複「L131119-27」是第一場比賽 –
確定試試這一個: DISTINCT(GROUP_CONCAT(trips_loads_rel.load_id)) – uvais