MySQL:フィールドサイズ/長さで並べ替え


89

これがテーブル構造(例:テスト)です:

 __________________________________________
| Field Name     | Data Type               |                 
|________________|_________________________|                 
|    id          |   BIGINT (20)           |                 
|________________|_________________________|                 
|    title       |   varchar(25)           |                 
|________________|_________________________|                 
|    description |   text                  |                 
|________________|_________________________|                 

次のようなクエリ:

SELECT * FROM TEST ORDER BY description DESC;

ただし、フィールドのサイズ/フィールドの説明の長さで並べ替えたいと思います。フィールドタイプはTEXTまたはBLOBになります。

回答:


168
SELECT * FROM TEST ORDER BY LENGTH(description) DESC;

このLENGTH関数は、文字列の長さをバイト単位で示します。(マルチバイト)文字をカウントする場合は、CHAR_LENGTH代わりに次の関数を使用してください。

SELECT * FROM TEST ORDER BY CHAR_LENGTH(description) DESC;

4
答えに追加するだけです。タイプがBLOBの場合は、を使用できますOCTET_LENGTH(column_name)
マスタジ2015年

MySQLドキュメントによると@mastazi:OCTET_LENGTH()はLENGTH()の同義語です。
Heitor 2017年

'CHAR_LENGTH'は、認識されている組み込み関数名ではありません。私はこのエラーに直面しています
Anurag 2017

5
SELECT * FROM TEST ORDER BY CHAR_LENGTH(description);

'CHAR_LENGTH'は、認識されている組み込み関数名ではありません。私はこのエラーに直面しています
Anurag 2017

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.