Mysql字符串中有数字的排序问题

此方法是我见过最聪明的写法,不过不知道有没有隐含的bug:

参考地址

select id, col from tableName order by length(col) asc, col asc这种方法只针对文本统一的情况,如:abc1,abc2,abc3,abc10,abc11如果文本长度不统一如:ab1,a11,b124,c11,dddddddddd1,这种情况就会出现问题。
时间: 2024-11-25 18:32:10

Mysql字符串中有数字的排序问题的相关文章

mysql 字符串按照数字类型排序

一个varchar,char的字段 存放 1+,12- ,11等字符串将字段*1或者+0可以将MySQL字符串字段按数值排序 order by 字段名称+0 desc/asc的形式进行排序 order by 字段名称*1 desc/asc的形式进行排序 原文地址:https://www.cnblogs.com/grimm/p/10297157.html

mysql 字符串类型数字排序

排序字段+0,类似  Java 把 其他类型转换成字符串 比如 +“”: SELECT    b.tag_value AS NAME,    sum(b.uv) ASVALUE FROM    meta.dic_app_category a,    rpt_app_cat_people bWHERE    a.id = b.`name`AND a.id = 100AND b.tag_name = 'active_hour'GROUP BY    b.tag_valueORDER BY    (b

Mysql 字符串转数字类型

使用场景: 在数据库中进行数字比较,但是数字的存储格式是varchar的时候可以使用以下方法进行转换,然后进行比较 方法一:SELECT CAST('123' AS SIGNED); 方法二:SELECT CONVERT('123',SIGNED); 方法三:SELECT '123'+0; 原文地址:https://www.cnblogs.com/eternityz/p/12243380.html

MySQL字符串中数字排序的问题

1.select * from table where 1   order by id*1 desc; 2.select * from table where 1 order by id+0 desc; 3.find_in_set()

MySQL 数字字符串按照数字排序

一个关于MySQL字符串排序,在数据里面定义的是varchar类型,实际存放的是Int类型的数据,按一下查询语句进行排序: 将字段*1或者+0可以将MySQL字符串字段按数值排序 如: 1 select * from table where 1 order by id*1 desc; 或者 1 select * from table where 1 order by id+0 desc; 除了上述方法外,这里附上一种排序方法,利用find_in_set()进行无敌排序 参考链接:https://

MySQL字符串函数、日期时间函数

MySQL字符串函数.日期时间函数 一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符

mysql字符串函数(转载)

对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -> 50mysql> select ASCII(2); -> 50mysql> select ASCII('dx'); -> 100 也可参见ORD()函数. ORD(str) 如果字符串str最左面字符是一个多字节字符,通过以

mysql 字符串函数

对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的 最左面字符的ASCII代码值.如果str是空字符串, 返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -> 50mysql> select ASCII(2); -> 50mysql> select ASCII('dx'); -> 100 也可参见ORD()函数. ORD(str) 如果字符串str最左面字符是一个多字节字符,通过以

剑指Offer解题报告(Java版)——字符串转换为数字 49

? ? 引言 ? ? STOI是很常见的一道题,leetcode上也有,字符串转换为数字一般都会有现成的函数去实现这样的功能,但有时候需要我们理解其中的具体实现,因为虽然是个很常见的问题,但实际上需要考虑的问题还是很多的,尤其是corner case的处理,而这类问题一般要考虑两点:一点是符号,另外一点是越界 ? ? 分析问题 ? ? 如果字符串前面有空格怎么办,一般来说中间是没有空格的,但是前后可能有空格,所以我们首先需要去掉多余的空格字符,用到trim函数 ? ? 然后就是字符串中有可能第一