SQL 同時對多個表進行模糊查詢並自定義順序
阿新 • • 發佈:2019-02-10
使用場景
類似qq主面板的搜尋框,可以輸入數字,字母(漢字首拼),中文進行模糊搜尋,可以搜到的結果有:qq號,暱稱,群號,群名稱等等。而這些內容可能存放在不同的表中,則需要對多個表的多個內容同時進行搜尋:(搜尋的欄位3個表中必須相同)SQL語句
SELECT * FROM ( SELECT FLAG, SID, ID, NAME, MOBILEPHONE, 1 AS userType FROM TAB_1 UNION SELECT FLAG, SID, ID, NAME, MOBILEPHONE, 2 AS userType FROM TAB_2 UNION SELECT FLAG, SID, ID, NAME, MOBILEPHONE, 3 AS userType FROM TAB_3 ) d WHERE ( d.NAME LIKE '%搜尋內容%' OR d.MOBILEPHONE LIKE '%搜尋內容%' OR d.ID LIKE '%搜尋內容%' OR d.SID LIKE '%搜尋內容%' ) AND d.FLAG != 3 ORDER BY userType ASC