我必须使用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
与某个值匹配,则它将首先显示在结果集中。如果不匹配,则将显示在结果的末尾。其他列也是如此。其他方法是用第一列进行查询,如果结果为空,则检查结果,然后转到第二列,依此类推