看板 Database 關於我們 聯絡資訊
困惑好幾天,還請各位版大鄉民指點一下 以下是一張表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
ultrma:先講我想出的爛方法, 先做union all之後再group by 求count 05/17 12:07
lin1987www:使用CASE WHEN來產生符合條件的權重欄位,作為排序即可 05/24 09:19