使用OR运算符从关键字检​​索匹配字段的SQL查询

时间:2012-07-25 10:01:15

标签: php mysql sql

我不知道如何解决这种情况。问题在于我用来从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查询

1 个答案:

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