2010-11-24 63 views
0

有没有办法给where子句添加排序顺序?对DB2 SQL结果按WHERE CLAUSE排序

例如

SELECT * 
FROM media 
WHERE media_title LIKE 'query' 
OR media_title LIKE 'query string' 
OR media_title LIKE 'query string to search for' 

我想通过的相关搜索是什么最终用户输入到搜索框中,随着最后where子句是最相关的。

回答

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 
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