Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

length() vs char_length() ใน MySQL?


char_length() สามารถใช้เพื่อแสดงความยาวของสตริง เรามาดูตัวอย่างเพื่อรับความยาวของสตริงที่รวมเป็นพารามิเตอร์

mysql> select char_length('John');

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+---------------------+| char_length('John') |+---------------------+| 4 |+---------------------+1 แถวในชุด (0.00 วินาที)

ฟังก์ชัน length() สามารถใช้เพื่อแสดงความยาวของสตริงที่วัดเป็นไบต์ ในหลายกรณี อักขระและไบต์มีความยาวเท่ากัน

นี่คือตัวอย่างความยาว()

mysql> เลือกความยาว ('Tim');

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+---------------------+| length('ทิม') |+---------------------+| 3 |+---------------------+1 แถวในชุด (0.00 วินาที)

length() และ char_length() ให้ผลลัพธ์แบบเดียวกันในสตริง ฟังก์ชัน length() ให้ความยาวต่างกันเมื่อใช้ Unicode สมมติว่าชื่อคอลัมน์มี unicode ใน Unicode ทุกอักขระจะใช้เวลา 2 ไบต์

เรามาดูตัวอย่างกัน −

mysql> สร้างตาราง LengthAndCharLengthDemo-> (-> FirstName varchar(200),-> SecondName varchar(255) unicode-> );Query OK, 0 แถวได้รับผลกระทบ (0.49 วินาที)

กำลังแทรกระเบียนลงในตาราง

mysql> แทรกลงในค่า LengthAndCharLengthDemo ('John','Ritter');Query OK, 1 แถวได้รับผลกระทบ (0.22 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้ตัวเลือก

mysql> เลือก *จาก LengthAndCharLengthDemo;

นี่คือผลลัพธ์

<ก่อนหน้า>+-----------+-----------+| ชื่อจริง | SecondName |+-----------+-----------+| จอห์น | Ritter |+-----------+----------- +1 แถวในชุด (0.00 วินาที)

ลองหาความยาวกันเถอะ

mysql> เลือก char_length(FirstName),length(Secondname) จาก LengthAndCharLengthDemo-> โดยที่ FirstName='John' และ Secondname='John';

นี่คือผลลัพธ์

<ก่อนหน้า>+-----------------------+--------------------------+ | char_length(ชื่อจริง) | ความยาว(SecondName) |+--------------------------------------+------------------- -+| 4 | 8 |+--------------------------+--------------------------+1 แถวในชุด (0.70 วินาที)

ในผลลัพธ์ข้างต้น คุณสามารถเห็นฟังก์ชัน length() คืนค่า 8 ไบต์เนื่องจาก unicode ในขณะที่ char_length() คืนค่าเพียง 4 เท่านั้น