作者gskill (冰冷)
看板Database
标题困惑好几天的MYSQL语法问题
时间Fri May 17 00:36:52 2013
困惑好几天,还请各位版大乡民指点一下
以下是一张表A
A
id item
1 1,2,3,4,5,6,7,8
2 1,2,3,4,5,6
3 3,4,5,6,7,8
4 1,7,9
SELECT * FROM `A` WHERE `item` LIKE '%1%' and `item` LIKE '%,7%' and `item`
LIKE '%,9%'
做AND的结果
A
id item
4 1,7,9
SELECT * FROM `A` WHERE `item` LIKE '%1%' or `item` LIKE '%,7%' or `item`
LIKE '%,9%'
做OR的结果
A
id item
1 1,2,3,4,5,6,7,8
2 1,2,3,4,5,6
3 3,4,5,6,7,8
4 1,7,9
不知道有办法搜寻完变成
A
id item
4 1,7,9
1 1,2,3,4,5,6,7,8
2 1,2,3,4,5,6
3 3,4,5,6,7,8
也就是越符合条件越往前排
目前想到的做法是先搜寻AND 在将ID存下来再搜寻 or 减去 已拥有的ID不过如果资料大
搜寻两次对系统负担应该蛮大的
不知道有没有其它作法 还请指点
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 112.105.189.232
1F:→ ultrma:先讲我想出的烂方法, 先做union all之後再group by 求count 05/17 12:07
2F:→ lin1987www:使用CASE WHEN来产生符合条件的权重栏位,作为排序即可 05/24 09:19