mysqlorderby数字字符串排序_MySQL字符串中数字排序的问
题
MySQL字符串相信⼤家都不陌⽣,在MySQL字符串排序时经常会遇到⼀些问题,⽐如下⾯的这个:
今天解决了⼀个关于MySQL字符串排序的很奇怪的问题,在数据⾥⾯定义的是varchar类型,实际存放的是Int类型的数据,按⼀下查询语句进
⾏排序:
将字段*1或者+0可以将MySQL字符串字段按数值排序
如:
select * from table where 1 order by id*1 desc;
或者
select * from table where 1 order by id+0 desc;火星时代教育怎么样啊
除了上述⽅法外,这⾥附上⼀种排序⽅法,利⽤find_in_set()进⾏⽆敌排序
附上Mysql函数 find_in_set() 的⽤法:
mysql语句分类-------------------------------------------------------
FIND_IN_SET(str,strlist)
Returns a value 如果字符串 str 在由 N 个⼦串组成的列表 strlist 中,返回⼀个 1 到 N 的值。⼀个字符串列表是由通过字符 “,” 分隔程序员入门教程免费
的多个⼦串组成。如果第⼀个参数是⼀个常数字符串,并且第⼆个参数是⼀个 SET 列类型,FIND_IN_SET() 函数将被优化为使⽤位运算!
如果 str 在不 strlist 中或者如果 strlist 是⼀个空串,返回值为 0。如果任何⼀个参数为 NULL,返回值也是 NULL。如果第⼀个参数包含
⼀个 “,”,这个函数将完全不能⼯作:
mysql>SELECT FIND_IN_SET('b','a,b,c,d');
c语言fread和fwrite函数>it培训机构的坑人之处->2
for example:
$sql="select p.*, find_in_set(p.products_id,$string_hot_pid) as rank from products p where p.products_id in ($string_hot_pid) or
insert语句与check约束冲突怎么解决
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论