我需要搜索from_a
和from_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查询可以吗?
答案 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%'