簡體   English   中英

MySQL通過單個單元格中的多個ID加入查詢

[英]MySQL Join Query By Multiple ID In Single Cell

我有以下數據(樣本)用於模板表

TempName, ItemID
Test1, 1/5/6/8/11
Test2, 2/4/5/8/10

因此,我想進行一個SQL查詢,該查詢將與Item Tables聯接並返回ItemID字段中匹配/存在的所有數據行

類似於:選擇*從Items.ID = Template.ItemID的項目內部聯接模板,其中模板名稱='Test1';

我無法計算出正確的sql查詢,因此,現在我使用的是for循環,但我更喜歡使用襯板或更好的查詢/腳本來處理。

目前我的代碼是這樣的:

Select ItemID From Template Where Name = 'Test1';
$strItems = explode('/', ItemID)
foreach($strItem in $strItems)
{
 select * from Items where ID = $strItem
}

那不是漂亮/格式正確的代碼,而是為了展示我現在的工作方式。但是我正在尋找更好的方法:)

最好的祝福

您可以在此處通過單個查詢使用FIND_IN_SET

SELECT i.*
FROM Items i
INNER JOIN Template t
    ON FIND_IN_SET(i.ID, REPLACE(t.ItemID, '/', ',')) > 0
WHERE
    t.Name = 'Test1';

演示

但是請注意,根本不像在Template表中那樣存儲未標准化的數據。 在單獨的行中存儲ItemID值會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM