我不知道如何解决这种情况。问题在于我用来从zip_codes表中检索位置的OR运算符。例如,如果有人只输入“NY”作为输入,我想要检索此字段。
表格数据如下:
+------+-------+--------------------------------------+
| zip | state | city |
+------+-------+--------------------------------------+
| 12345| NY | Schenectady |
+------+-------+--------------------------------------+
例如,可能的输入是“NY”,所以我的查询如下:
SELECT zip, state, city
FROM zip_codes
WHERE name = 'NY'
OR zip = 'NY'
OR city ='NY'
LIMIT 1
我想在上面的例子中只检索字段状态,因为这意味着用户只将状态设置为引用。如果他们进入“Schenectady” - 城市领域,如果他们输入“12345” - 只是邮政编码字段等。
是的,我可以在一堆if中设置这个,但也许是一些我不知道的SQL查询
答案 0 :(得分:4)
select *, case when zip = 'NY'
then 'zip'
when name = 'NY'
then 'name'
when city = 'NY'
then 'city'
end as found
from zip_codes
where 'NY' in (name, zip, city)
limit 1