我想首先显示与国家/地区具有相同行数据的行(有一行名为country).例如,如果有5个结果,其中2个具有"英格兰"的国家,那么它们应该是第一个.我试过了
$mycountry = "england"; mysql_query("SELECT * FROM members where basresvar='yes' ORDER BY country DESC limit 10")
但它并没有像我想的那样对结果进行排序.这样做的正确方法是什么?
您可以这样编写查询:
select * from members where basresvar='yes' order by case when country='england' then 1 else 2 end limit 10
case...when
当country ='england'时,语句将返回1,否则返回2,那么由于我们按此语句排序,因此将把country ='england'的行放在顶部,将其他行放在底部.
使用
ORDER BY country = "England" DESC, country
当比较为真时,值为1
; 当它是假的时候,价值是0
.因此,当您按降序排序时,国家/地区等于英格兰的行将被放在第一位.
添加第二个排序标准会使所有剩余国家/地区按英格兰字母排序.