我有一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;