[SQL ]困惑好幾天的MYSQL語法問題

看板Database作者 (冰冷)時間11年前 (2013/05/17 00:36), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
困惑好幾天,還請各位版大鄉民指點一下 以下是一張表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

05/17 12:07, , 1F
先講我想出的爛方法, 先做union all之後再group by 求count
05/17 12:07, 1F

05/24 09:19, , 2F
使用CASE WHEN來產生符合條件的權重欄位,作為排序即可
05/24 09:19, 2F
文章代碼(AID): #1HbGieFP (Database)