Dữ liệu tối đa mà chúng tôi có thể lưu trữ trong varchar trong mysql là 255. Nhưng sau Mysql phiên bản 5. 0. 3 varchar có thể lưu trữ tối đa 65.535 ký tự. Nhưng một lần nữa, giới hạn này có giới hạn về kích thước hàng tối đa là 65535 byte. Nó có nghĩa là bao gồm tất cả các cột, nó phải nhỏ hơn 65.535 byte. Hãy lấy một ví dụ như dưới đây. Tôi đã tạo bảng bên dưới với hai cột là varchar “f1” với độ dài 32,765 và “f2” với 32766. Tổng chiều dài sẽ là 32765+2[để lưu trữ chiều dài] + 32766 + 2 = 65535
Để có độ dài varchar dài nhất, bạn cần sử dụng CHAR_LENGTH[]
Cú pháp như sau
SELECT Max[CHAR_LENGTH[yourColumnName]] AS anyAliasName FROM yourTableName;
Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau
mysql> create table CharLengthDemo - > [ - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > Sentence varchar[255] - > ]; Query OK, 0 rows affected [0.60 sec]
Chèn một số bản ghi vào bảng bằng lệnh chèn
Truy vấn như sau
mysql> insert into CharLengthDemo[Sentence] values['Java is an object oriented programming language' - > ]; Query OK, 1 row affected [0.45 sec] mysql> insert into CharLengthDemo[Sentence] values['MySQL is a Relational Database Management System']; Query OK, 1 row affected [0.26 sec] mysql> insert into CharLengthDemo[Sentence] values['JSP uses Java Programming Language']; Query OK, 1 row affected [0.24 sec] mysql> insert into CharLengthDemo[Sentence] values['Object is a root class in java']; Query OK, 1 row affected [0.12 sec]
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn
Truy vấn như sau
mysql> select *from CharLengthDemo;
Sau đây là đầu ra
+----+--------------------------------------------------+ | Id | Sentence | +----+--------------------------------------------------+ | 1 | Java is an object oriented programming language | | 2 | MySQL is a Relational Database Management System | | 3 | JSP uses Java Programming Language | | 4 | Object is a root class in java | +----+--------------------------------------------------+ 4 rows in set [0.00 sec]
Đây là truy vấn để có được độ dài varchar dài nhất
mysql> SELECT Max[CHAR_LENGTH[Sentence]] AS MAXLENGTH FROM CharLengthDemo;
Sau đây là kết quả hiển thị giá trị có độ dài varchar dài nhất
+-----------+ | MAXLENGTH | +-----------+ | 48 | +-----------+ 1 row in set [0.00 sec]
Ví dụ đầu tiên sẽ là để chọn kích thước của các bản ghi dài nhất trong một bảng. Điều này hữu ích khi bạn muốn tối ưu hóa một bảng nhất định theo dữ liệu bên trong
chuẩn bị truy vấn trợ giúp
Bước đầu tiên là lấy thông tin cột cho một bảng nhất định. Sau đó, chúng tôi đang sử dụng tên cột và nối chúng với các phần được chọn để có được
select MAX[CHAR_LENGTH[id]], 'id' FROM test
lưu ý rằng tên bảng là test và tên cột là id
Truy vấn đầu tiên trông giống như
________số 8Một số điểm cần xem xét
- Để kích hoạt nối với các đường ống trong MySQL, chúng tôi chạy
SET sql_mode='PIPES_AS_CONCAT';
Bạn có thể tự do viết lại nó với các hàm concat
Bạn cần sửa đổi
- TABLE_SCHEMA - của riêng bạn - 1 địa điểm
- TABLE_NAME - cùng với bàn của bạn - 2 địa điểm
CHAR_LENGTH so với LENGTH - lần đầu tiên đo độ dài ký tự trong khi lần thứ hai lấy kích thước tính bằng byte. Cái nào bạn sẽ sử dụng phụ thuộc vào nhu cầu của bạn
Đối với các cột rỗng - chỉ với các bản ghi NULL bên trong, bạn sẽ nhận được giá trị NULL cho giá trị tối đa, tối thiểu và trung bình
Chọn độ dài tối đa cho mỗi cột trong MySQL
Đối với truy vấn cuối cùng, bạn cần được kết nối với lược đồ của mình, nếu không, bạn sẽ cần thêm lược đồ vào đầu ra của mình. Bạn sẽ cần xóa UNION cuối cùng khỏi kết quả của truy vấn trước đó. Điều này sẽ cung cấp cho bạn truy vấn này để có được độ dài tối đa
mysql> create table CharLengthDemo - > [ - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > Sentence varchar[255] - > ]; Query OK, 0 rows affected [0.60 sec]0
kết quả
MAX[CHAR_LENGTH[id]],id
1,id
4,năm
\N, .
4,flag1
...
MySQL chọn độ dài tối thiểu tất cả các cột
Lấy độ dài tối thiểu của tất cả các cột có thể được thực hiện theo cách tương tự như chiều dài tối đa
chuẩn bị truy vấn trợ giúp để có được độ dài tối thiểu
mysql> create table CharLengthDemo - > [ - > Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, - > Sentence varchar[255] - > ]; Query OK, 0 rows affected [0.60 sec]1
Chọn độ dài tối thiểu cho mỗi cột trong MySQL
Tất nhiên bạn có thể nhận được cùng một kết quả theo nhiều cách khác nhau. Ví dụ: bạn có thể sử dụng tệp excel để thực hiện nối và nhận truy vấn cuối cùng này - khi bạn có tên cột