作者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
1F:→ Antzzz:尽量别这样写!where ','+icons+',' like '%'+icon.id+'%' 09/16 18:07
2F:→ Antzzz:叫人不要这样写结果自己还是写了…哎呀我少加两个逗号@@ 09/16 18:13