作者JYHuang (夏天到了,冷不起來了說)
看板Database
標題[MySQL] 用一整列與一個Field做比對的方法
時間Wed Sep 16 11:09:19 2009
之前要將兩個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