魏长东

weichangdong

东邪

mysql排序order by find_in_set|field

mysql进行排序的时候如果需要按照某些特定的数据排序,就可以使用order by find_in_set()方法,找出那些特定的数据,然后用他排序。具体用法如下:

select  *  from  ad_types order by find_in_set(ad_type_id,'3,4') desc ;

当然,这个

find_in_set(field,$str)

$str可以是个变量,

find_in_set除了可以用在order by排序外,还有另外一种用法,用在where语句中。

 select  *  from  ad_types where  find_in_set(ad_type_id,'3,4') ;

mysql还有一种排序的方法

MySQL自定义排序函数FIELD()

MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4),value与str1、str2、str3、str4比较,返回1、2、3、4,如遇到null或者不在列表中的数据则返回0.

select  *  from  ad_types order by field(ad_type_id,3,4) desc;

这些sql都自己测试了的,因为实在工作环境测试的,一些数据不便展示,所以没有帖执行结果。