在一張表中,我有這樣的資料列

是否有可能進行查詢以這種格式回傳此資料:
_IDS_
71554
99188
69337
70534
73575
作為單獨的 ID,然后我可以在查詢中使用它
WHERE table.o_id NOT IN (_IDS_)
uj5u.com熱心網友回復:
不要以 CSV 格式存盤值串列。對其進行規范化,每行存盤一個值。
您可以使用 FIND_IN_SET() 函式針對 CSV 串列測驗值。您需要任何 CSV 串列中不存在的測驗值,因此使用 NOT EXISTS:
SELECT *
FROM data_table
WHERE NOT EXISTS ( SELECT NULL
FROM CSV_table
WHERE FIND_IN_SET(data_table.o_id, CSV_table.WebImages__images)
);
- 您可以將 CSV 決議為單獨的值。有很多解決方案。例如:
SELECT CSV_table.id, jsontable.WebImage_id
FROM CSV_table
CROSS JOIN JSON_TABLE( CONCAT('[', TRIM(BOTH ',' FROM CSV_table.WebImages__images), ']')
'$[*]' COLUMNS (WebImage_id INT PATH '$')
) jsontable
uj5u.com熱心網友回復:
做這樣的事情:
Sélect * from table1 where id not in (sélect cast(strcol as int) from table2);
uj5u.com熱心網友回復:
這應該做你想要的
SELECT * FROM demotbl2 where id not in (SELECT GROUP_CONCAT(TRIM(',' FROM WebImages__images)) FROM demotbl1);
GROUP_CONCAT() = 組合行,TRIM 洗掉第一個和最后,一個會破壞搜索陣列的行
希望能幫助到你
這是概念證明的小提琴..:D .. Mysql DB Fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534418.html
標籤:数据库
