MySQL排序问题 以字串的长度行排序

我有一table如下
图片说明

希望排序能变成左边的排序,请问题SQL语法如何实现呢

select * from table_name order by length(column_name);

希望可以帮到你

order by asc

select * from 表明 order by length(字段) desc;

select * from @table order by LEN(name) desc

select * from table order by is asc 看你表的字段是is。根据这个字段排序升序就行了。

select * from table_name换成想要的表名 order by length(column_name也换成想要的列名);这样是从短到长排
select * from table_name order by length(column_name) desc;这样是从长到短

select * from table order by LENGTH(字段) desc;

SELECT * FROM 表名 ORDER BY LENGTH(字段名) DESC; 这种就好,但是你要注意mysql 5.0以上版本中文汉字采用utf-8编码时是占用3个字节的,而英文或者数字等字符只占用一个字节位

用LENGTH函数可以获取值的长度,所以SQL语句这样写即可(排序时都是默认的升序ASC,所以该关键字可以省略不写):
SELECT * FROM 表名 ORDER BY LENGTH(排序列字段名)

另外,有时候会需要查询某字段值出现多次的数据,例如手机号出现2次及以上的数据,附上该例子SQL:
SELECT * FROM (
SELECT 长度字段名, COUNT(1) AS LEN FROM 表名 GROUP BY 长度字段名
) T
WHERE T.LEN >1

此题有两个截然不同的答案,看楼主要求:
根据长度:select * from 表 order by length(字段名) desc
根据字符串反转后降序:select * from 表 order by reverse(字段) desc

select id,排序字段 from 表名 order by length(排序字段) desc;