有没有办法在where子句中添加排序顺序?
例如
SELECT *
FROM media
WHERE media_title LIKE 'query'
OR media_title LIKE 'query string'
OR media_title LIKE 'query string to search for'
我想通过相关性搜索最终用户输入到搜索框中,最后一个where子句是最相关的。
答案 0 :(得分:3)
SELECT *
FROM media
WHERE media_title LIKE 'query'
OR media_title LIKE 'query string'
OR media_title LIKE 'query string to search for'
ORDER BY case
when media_title LIKE 'query' then 1
when media_title LIKE 'query string' then 2
when media_title LIKE 'query string to search for' then 3
end
答案 1 :(得分:0)
我认为这个版本可以更快,更具可读性:
SELECT *
FROM media
WHERE media_title IN ('query',
'query string',
'query string to search for')
ORDER BY case
when media_title = 'query' then 1
when media_title = 'query string' then 2
when media_title = 'query string to search for' then 3
end