5 mysql 使用in条件的时候,出来的结果和原来的in中顺序不一致问题

在mysql中使用in条件过滤结果的时候,select出来的结果 area_name 的排序和 '引入'的顺序明显不一样,在一些条件下会造成很多不便,那么怎么才能保证,select的结果和引入的时候顺序是一致 的呢。如下例子:

SELECT area_code, area_name FROM  eddb.ed_area  WHERE

area_name IN (

'个旧市',

'开远市',

'蒙自市',

'屏边苗族自治县',

'建水县',

'石屏县'

                       )

attachments-2016-09-TGCcdmsw57ecece377fb

里面area_name 出来的结果和 in 条件中的字符顺序明显相差很多,那么怎么保证 ,select的结果和in 条件中的顺序一致呢?

请先 登录 后评论

1 个回答

石天

可以通过 mysql提供的field 函数达到目的。MySQL可以通过field()函数自定义排序,格式:field(value,str1,str2,str3,str4)valuestr1str2str3str4比较,返回1234,如遇到null或者不在列表中的数据则返回0.对您的问题,可以使用如下语句达到目的:


SELECT area_code, area_name FROM  eddb.ed_area  WHERE

area_name IN (

'个旧市',

'开远市',

'蒙自市',

'屏边苗族自治县',

'建水县',

'石屏县'

              )

 order by field(area_name ,'个旧市',

'开远市',

'蒙自市',

'屏边苗族自治县',

'建水县',

'石屏县')


排序的结果为:

attachments-2016-09-n1BI5Vcd57ecef59cd96


这个应该是你需要的。

请先 登录 后评论
  • 1 关注
  • 0 收藏,1281 浏览
  • 小A 提出于 2016-09-29 18:30

相似问题