2010-08-31 252 views
34

早上,有可能按字符長度排序sql數據行嗎?SQL查詢:按字符長度排序?

例如SELECT * FROM database ORDER BY data.length()

+3

你嘗試運行SQL語句在做什麼? – 2010-08-31 07:32:16

+0

不是真的? ;) – TorbenL 2010-08-31 07:33:41

+0

對於那些希望使用SQLAlchemy執行此操作的人,請合併['desc()'](http://docs.sqlalchemy.org/en/rel_1_1/core/sqlelement.html?highlight=desc#sqlalchemy.sql.expression .desc)與['func()'](http://docs.sqlalchemy.org/en/rel_1_1/core/sqlelement.html?highlight=desc#sqlalchemy.sql.expression.func),如[暗示的](http://stackoverflow.com/a/15743220/594137)。 – 2016-08-02 07:52:35

回答

51

我想你想用這個:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_char-length

SELECT * FROM table ORDER BY CHAR_LENGTH(field) 

只需使用簡單的長度(),但要小心,因爲它計算字節數字(它不會給你帶有多字節字符串的預期結果)。

+1

+1使用'CHAR_LENGTH'而不是'LENGTH'。 – Gumbo 2010-08-31 07:38:28

+0

就是這樣!謝謝!! – TorbenL 2010-08-31 07:42:59

+1

如果您正在尋找MS SQL Server變種,請參閱下面的Alex Reitborts答案。 – Gigi2m02 2015-02-27 07:56:52

6
SELECT * FROM table ORDER BY length(data) desc 

如果數據是varchar字段

+0

它在sqlite3中工作 – tounaobun 2014-12-16 06:56:16

27
SELECT * FROM database ORDER BY Len(data) 
+9

此函數適用於MS SQL Server。 – Denis 2014-01-21 18:58:21

0
SELECT * FROM YourTable ORDER BY LENGTH(Column_Name) DESC 

e.g;

SELECT * FROM Customer ORDER BY LENGTH(CustomerName) DESC 
0

對於任何與sqlite的

SELECT * FROM table ORDER BY LENGTH(field) DESC