看板 Database 關於我們 聯絡資訊
之前要將兩個table做多對多關聯,都會再開一個table來放關聯的資料 有時想偷懶一點,將其中一個表的主鍵都放在另一個表的其中一個欄位 像是group_concat的反向操作那樣 像是 Product Icon id,name,icons id,file '#1','#2' 把icon的id集合放在product的icons欄位裡 用SELECT * FROM icon where id in (select icons from product where..) 這樣的話MySQL似乎會把子查詢回傳的當字串而不是集合..結果是空的 後來找到一個偷雞的方法.. SELECT * FROM icon LEFT JOIN Product ON INSTR(icons,concat("#'",icon.id,"'"))>0 AND ..... 不過這樣資料一多時loading好像會很大 = =" 而且還要將要比對的資料格式化..免得出現 #1,#11 都算在#1內的情形 不知道有沒有更方便的方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.218.220.74
Antzzz:儘量別這樣寫!where ','+icons+',' like '%'+icon.id+'%' 09/16 18:07
Antzzz:叫人不要這樣寫結果自己還是寫了…哎呀我少加兩個逗號@@ 09/16 18:13