Mysql
如何拆分欄位並使用它執行子查詢?
給定下面的兩個表 T1 和 T2,在 MySQL 5.7.x 中有沒有辦法從 T1 獲取這樣的列表欄位,以便 T2 中不存在任何條目?T1.list 是一個正常的 VARCHAR,包含由 ‘:’ 分隔的 T2.vals
從範例中,我想獲得 D:E 欄位。
T1
id list 0 A:B:C 1 D:E 2 F:G
T2
vals A B C F G
select t1.id, t1.list from t1 left join t2 on locate(t2.vals, t1.list) group by t1.id, t1.list having 0 = count(t2.vals);
在更複雜的情況下(當列表中的標記可能包含一個標記作為子字元串時)您可以使用
select t1.id, t1.list from t1 left join t2 on locate(concat(':',t2.vals,':'), concat(':',t1.list,':')) group by t1.id, t1.list having 0 = count(t2.vals);