Php 首先搜索第一个字段中的数据,如果不是,则搜索下一个字段,如果不是,则搜索第三个字段

Php 首先搜索第一个字段中的数据,如果不是,则搜索下一个字段,如果不是,则搜索第三个字段,php,mysql,Php,Mysql,我必须使用mysql查询从数据库中查找数据 screenio是:- 我必须按州搜索数据。在admin中,我为每条记录存储三种状态。所以当用户搜索时,查询将在第一个字段中搜索。如果未找到数据,则为第二个字段,如果未找到,则为第三个字段 有没有可能在一个查询中完成它,这样我就可以进行分页。一种方法是,您可以通过比较所有三列来编写查询,并根据匹配的列对结果集进行排序 select * , case when col1 = 'some value' then 3 when col2 =

我必须使用mysql查询从数据库中查找数据

screenio是:- 我必须按州搜索数据。在admin中,我为每条记录存储三种状态。所以当用户搜索时,查询将在第一个字段中搜索。如果未找到数据,则为第二个字段,如果未找到,则为第三个字段


有没有可能在一个查询中完成它,这样我就可以进行分页。

一种方法是,您可以通过比较所有三列来编写查询,并根据匹配的列对结果集进行排序

select * ,
case 
   when  col1 = 'some value' then 3
   when  col2 = 'some value' then 2
   when  col2 = 'some value' then 1
else 0 end as matching_criteria
from table
where col1 = 'some value'
or col2 ='some value'
or col3 ='some value'
having matching_criteria > 0
order by matching_criteria desc
limit 10

现在,如果
col1
匹配某个值,那么它将首先显示在结果集中,如果不匹配,那么它将位于结果的末尾,其他列也是如此。其他方法是使用第一列进行查询,检查结果是否为空,然后转到第二列,依此类推。

您可以在SQL中使用if/else语句。看看这里:你能发布你想要查询的表格设计吗?或者只是在回答中使用
foo
bar
可以吗?