konakona
MYSQL ORDER BY 不按字段排序
MYSQL ORDER BY 不按字段排序

需求那个变态啊……我连MYSQL变量都用了……什么SET @str = (123) 什么的……不过都不是我想要的。

 

mysql in 默认的排序

select id from table where id in (2,1,3,5);

查出来的结果是:1 2 3 5
但是有的时候是要:2 1 3 5

select id from table where id in (2,1,3,5) order by substring_index(‘2,1,3,5’,id,1);

substring_index(str,delim,count)
字符串截取函数
str 要截取的字符串 delim 截取的分割符 count 截取的数量
返回从字符串str的第count个出现的分隔符delim之后的子串。如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。
那 order by substring_index(‘2,1,3,5′,id,1) 这个啥意思呢
这个是在字符串’2,1,3,5′里查找id,如果找不到,就返回整个字符串

select id from table where id in (2,1,3,5) order by find_inset(id,’2,1,3,5′)

find_in_set(str,strlist)
字符串函数
如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。如果str不是在strlist里面或如果strlist是空字符串,返回0。

赞赏
https://secure.gravatar.com/avatar/3b712b34a0e1b689cfb524c9c6bcdc47?s=256&r=g

团哥

文章作者

继续玩我的CODE,让别人说去。 低调,就是这么自信。

发表评论

textsms
account_circle
email

konakona

MYSQL ORDER BY 不按字段排序
需求那个变态啊……我连MYSQL变量都用了……什么SET @str = (123) 什么的……不过都不是我想要的。   mysql in 默认的排序 select id from table where id in (2,1,3,5); 查出来的…
扫描二维码继续阅读
2012-11-05