[MySQL] 用一整列與一個Field做比對的方法

看板Database (資料庫)作者 (夏天到了,冷不起來了說)時間16年前 (2009/09/16 11:09), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
之前要將兩個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

09/16 18:07, , 1F
儘量別這樣寫!where ','+icons+',' like '%'+icon.id+'%'
09/16 18:07, 1F

09/16 18:13, , 2F
叫人不要這樣寫結果自己還是寫了…哎呀我少加兩個逗號@@
09/16 18:13, 2F
文章代碼(AID): #1Ai5RX3Y (Database)
文章代碼(AID): #1Ai5RX3Y (Database)