作者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