2017-07-14 38 views
-2

我有兩個表,看起來像該字符串柱內部存在的項目獲取計數

項目

  • ID(INT)
  • 名(爲varchar)
  • category_ids(VARCHAR)

在category_ids中有一個字符串,可以是「」,「1,3,7」或「4」o R 「1,6,9」 - 這個數字是類別ID

分類

  • ID

我想知道有多少(INT)

  • 名(VARCHAR)項目在每個類別

  • +1

    您可以使用FIND_IN_SET() –

    +3

    如果您的項目和類別只有多對多的表,那會更容易。 –

    +2

    然後,如果可能的話,應該首先修復_broken_系統;這應該正確_normalized_,而不是被存儲爲一個逗號分隔的字符串。 – CBroe

    回答

    0

    因此搜索解決方案後,我需要說的兩件事

    1)此任務可以通過使用)功能函數調用FIND_IN_SET((如蘇雷什Kamrushi建議)

    SELECT COUNT(*) FROM Items WHERE FIND_IN_SET("1",category_ids) 
    

    2來解決)最好不要使用這種表的連接結構的 - 想想讓你的數據庫使用多對多關係表進行歸一化