MySQL - วิธีเลือกข้อมูลตามความยาวสตริง


302
SELECT * FROM table ORDER BY string_length(column);

มีฟังก์ชั่น MySQL ในการทำสิ่งนี้ (แน่นอนแทนที่จะเป็นstring_length)

คำตอบ:


492

คุณกำลังค้นหาCHAR_LENGTH()จำนวนอักขระในสตริง

สำหรับชุดอักขระแบบหลายไบต์LENGTH()จะให้จำนวนไบต์ที่สตริงตรงกับคุณในขณะที่CHAR_LENGTH()จะคืนค่าจำนวนอักขระ


139
ที่จริงแล้ว CHAR_LENGTH () ควรเป็นตัวเลือกที่ดีกว่า สำหรับชุดอักขระแบบหลายไบต์ LENGTH () จะให้จำนวนไบต์แก่สตริงที่คุณใช้ขณะที่ CHAR_LENGTH () จะส่งคืนจำนวนอักขระ
AndrásSzepesházi

4
เลือก LENGTH ('Ö'); ผล 2 !! คำตอบของAndrásSzepesháziนั้นถูกต้อง!
fubo

ถูกต้องหรือไม่ที่จะส่งพารามิเตอร์จำนวนเต็มไปCHAR_LENGTHถ้าฉันส่งคืนจำนวนอักขระ? , por CHAR_LENGTH(12)2
ejemplo

81
select * from table order by length(column);

เอกสารเกี่ยวกับความยาว () ฟังก์ชั่นเช่นเดียวกับทุกฟังก์ชั่นสายอื่น ๆ ที่มีอยู่ที่นี่



3

ฟังก์ชั่นที่ฉันใช้เพื่อค้นหาความยาวของสตริงนั้นlengthใช้ดังนี้:

SELECT * FROM table ORDER BY length(column);

1

ฉันใช้ประโยคนี้เพื่อกรอง

SELECT table.field1, table.field2 FROM table WHERE length(field) > 10;

คุณสามารถเปลี่ยน 10 สำหรับหมายเลขอื่น ๆ ที่คุณต้องการกรอง


-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

ตัวอย่างถ้าคุณต้องการเลือกจากลูกค้ารายการที่มีชื่อสั้นกว่าตัวอักษร 2 ตัว

select * from customer where 1 **having length(name)<2**
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.