1
我遇到了在數據庫中爲搜索值設置優先級的問題。我想找到所有的課程,在名稱課程中有一個短語(或包含短語的詞)。 此外,與返回的數據中名稱與搜索詞組名稱完全相同的課程名列第一。如何爲搜索值設置優先級
記錄爲當然表:
+----+------+-------------------+
| id | code | name |
+----+------+-------------------+
| 1 | JPA | JPA lorem ipsum |
| 2 | JSF | Jsf lorem ipsum |
| 3 | HIB | HIB lorem ipsum |
| 4 | TEB | TEB lorem ipsum |
| 5 | ZRN | Thanks in advance |
+----+------+-------------------+
我的查詢:
SELECT `course`.`id`, `course`.`name`
FROM `course`
WHERE `name` LIKE 'TEB lorem ipsum' or
`name` LIKE '%TEB%' or
`name` LIKE '%lorem%' or
`name` LIKE '%ipsum%'
數據庫返回:
+----+-----------------+
| id | name |
+----+-----------------+
| 1 | JPA Lorem ipsum |
| 2 | Jsf Lorem ipsum |
| 3 | HIB Lorem ipsum |
| 4 | TEB lorem ipsum |
+----+-----------------+
我希望收到:
+----+-----------------+
| id | name |
+----+-----------------+
| 4 | TEB lorem ipsum |
| 1 | JPA Lorem ipsum |
| 2 | Jsf Lorem ipsum |
| 3 | HIB Lorem ipsum |
+----+-----------------+
記錄,其中4id是最匹配的並且是返回數據中的第一位。問題,我該怎麼辦?
在此先感謝!
我認爲一個簡單的IF應該做的伎倆,不是? 'IF(name ='TEB lorem ipsum',1,2);' – CentaurWarchief
非常感謝你們!第一和第二個解決方案很好,它的工作原理!謝謝! – Piotr