MySQL: เรียงลำดับตามขนาด / ความยาวของฟิลด์


90

นี่คือโครงสร้างตาราง (เช่นการทดสอบ):

ชื่อฟิลด์ ประเภทข้อมูล
id บิ๊กอินท์ (20)
หัวข้อ วาร์ชาร์ (25)
คำอธิบาย ข้อความ

คำถามเช่น:

SELECT * FROM TEST ORDER BY description DESC;

แต่ฉันต้องการสั่งซื้อตามขนาดฟิลด์ / ความยาวของคำอธิบายฟิลด์

ประเภทฟิลด์จะเป็น TEXT หรือ BLOB

คำตอบ:


172
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)คุณสามารถใช้
mastazi

@mastazi ตามเอกสาร MySQL: OCTET_LENGTH () เป็นคำพ้องความหมายของ LENGTH ()
Heitor

"CHAR_LENGTH" ไม่ใช่ชื่อฟังก์ชันในตัวที่รู้จัก ฉันกำลังเผชิญกับข้อผิดพลาดนี้
Anurag


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.