在SQL中,如何将一个匹配列优先于另一个?

Mic*_*rdo 0 sql where match operator-precedence

我尝试了一些东西,但我画了一个空白.这是我的查询:

SELECT * 
    FROM Companies 
WHERE 
    Symbol LIKE 'ZY%' OR 
    Name LIKE '%ZY%' 
ORDER BY Symbol ASC
LIMIT 2;
Run Code Online (Sandbox Code Playgroud)

基本上我想要"ZY"匹配(ZNGA,Zynga Inc)才能匹配(HALO,Halozyme Therapeuti ......).

显然,订单的原因是这部分查询:

ORDER BY Symbol
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗?

Chi*_*Chi 5

您只需将其添加到Order By子句中

SELECT * FROM Companies WHERE Symbol LIKE 'ZY%' OR Name LIKE '%ZY%' 
ORDER BY 
  (CASE WHEN Symbol LIKE 'ZY%' THEN 1
        WHEN Name LIKE '%ZY%' THEN 2
        END),
Symbol ASC;
Run Code Online (Sandbox Code Playgroud)