我有一個保存在字符串中的類別列表。一個是在廣告桌上的另一個文章桌上。我需要該腳本來返回這兩個表之間的所有這些類別的組合的所有行。這兩個表MySQL - 需要在單個字符串中找到多個通配符
類別字符串:
Civic,Community,Sports,Business
而且我的MySQL腳本
SELECT `Ad_ID`, `Ad_URL`, `Ad_Image`, `Ad_Type`, `Ad_Cities`, `Ad_Categories`
FROM `Ad_TABLE`
INNER JOIN `Article_TABLE` ON `Article_TABLE`.`Article_Cat` = `Ad_TABLE`.`Ad_Cat`
WHERE Article_TABLE.Article_Cat LIKE '%Civic%'
OR Article_TABLE.Article_Cat LIKE '%Community%'
OR Article_TABLE.Article_Cat LIKE '%Sports%'
OR Article_TABLE.Article_Cat LIKE '%Business%'
AND Ad_TABLE.Ad_Cat LIKE '%Civic%'
OR Ad_TABLE.Ad_Cat LIKE '%Community%'
OR Ad_TABLE.Ad_Cat LIKE '%Sports%'
OR Ad_TABLE.Ad_Cat LIKE '%Business%'
腳本只返回了僅在這些類別中的一個記錄,但也有在多個記錄類別,我需要它來返回這些。
我怎樣才能找到它找到兩個表之間的所有匹配類別?
,如果你需要做任何事情超過店面不要在數據庫中存儲的序列化數據和檢索整個事情。查找像這樣的字符串的部分是非常低效的,你應該真的把類別分解到它自己的表中,並使用'JOIN'來計算這種關係。 – Sammitch
這實際上更有意義。這個網站和數據庫真的很詭異,我一直在盡我所能地處理它,而不必重寫它的大部分內容。 – arch649
這是有點不清楚你在問什麼。有*問題*嗎?初看起來...... 1)在數據庫列中存儲「逗號分隔列表」是一種SQL反模式。 2)**'AND' **運算符的優先級高於**'OR' **運算符。如果您希望以不同順序評估操作,請使用括號。 3)表中實際數據的樣本,包括應返回的示例行和不應返回的行將使規範更清晰。由於現在的問題,我們只是猜測你想要達到的目標。 – spencer7593