是否可以选择搜索查询的匹配字段

时间:2015-06-18 10:13:45

标签: mysql sql select

我需要搜索from_afrom_alt字段,但应该只选择匹配字段(与搜索条件匹配的字段)为from_airport

样本表:

+--------+-----------------+
| from_a |      from_alt   |
+--------+-----------------+
| FRA    | BER,MUQ         |
| JFK    | CAL,FRA         |
+--------+-----------------+

正常选择的样本查询:

select from_a as from_airport
from details
where from_a like 'FRA%'
   or from_alt like 'FRA%';

但我需要选择的是命中字段from_airport

这个例子的结果应该是,

+--------------+
| from_airport | 
+--------------+
| FRA          | 
| CAL,FRA      | 
+--------------+

普通的mysql查询可以吗?

2 个答案:

答案 0 :(得分:2)

使用CASE

select CASE 
         WHEN from_a like 'FRA%' THEN from_a 
         WHEN from_alt like 'FRA%' THEN from_alt
       END as from_airport  
from details 
where from_a like 'FRA%' or from_alt like 'FRA%';

如果两个字段都匹配,则from_a优先于from_alt

答案 1 :(得分:1)

您可以使用union

select from_a as from_airport from details where from_a like 'FRA%'
union
select from_alt from details where from_alt like 'FRA%'