Hướng dẫn này chỉ cho bạn cách sử dụng các hàm độ dài chuỗi của MySQL để lấy độ dài của chuỗi theo byte và theo ký tự.

Bạn đang xem : độ dài mysql của chuỗi

Tóm tắt : trong này hướng dẫn, bạn sẽ tìm hiểu về các hàm Độ dài chuỗi MySQL cho phép bạn lấy độ dài của chuỗi được đo bằng byte và bằng ký tự.

MySQL hỗ trợ nhiều bộ ký tự chẳng hạn như latin1 , utf8 , v.v. Bạn sử dụng câu lệnh SHOW CHARACTER SET để nhận tất cả các bộ ký tự được hỗ trợ bởi máy chủ cơ sở dữ liệu MySQL.

 

HIỂN THỊ

CHARACTER

SET

;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

 bộ ký tự mysql

Maxlen cột lưu trữ số byte cho các bộ ký tự. Trong MySQL, một chuỗi có thể nằm trong bất kỳ bộ ký tự nào. Nếu một chuỗi chứa các ký tự 1 byte, thì độ dài của nó được đo bằng ký tự và độ dài được đo bằng byte là bằng nhau. Tuy nhiên, nếu một chuỗi chứa các ký tự nhiều byte, thì độ dài của nó tính bằng byte thường lớn hơn độ dài tính bằng ký tự.

Để nhận độ dài của chuỗi được tính bằng byte, bạn sử dụng LENGTH < / code> chức năng như sau:

 

LENGTH (str);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Bạn sử dụng CHAR_LENGTH hàm lấy độ dài của một chuỗi được đo bằng các ký tự như sau:

 

CHAR_LENGTH (str); < / code>

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Ví dụ về hàm LENGTH và CHAR_LENGTH

Hãy xem các câu lệnh sau:

 

ĐẶT

@s =

CHUYỂN ĐỔI

(

'Độ dài chuỗi MySQL'

SỬ DỤNG

ucs2);

CHỌN

CHAR_LENGTH

(@s),

CHIỀU DÀI

(@s);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< img alt = "Độ dài chuỗi MySQL - LENGTH và CHAR_LENGTH" class = "wp-image-2350" height = "51" src = "https://www.mysqltutorial.org/wp-content/uploads/2013/05/MySQL -String-Length-LENGTH-and-CHAR_LENGTH.png "width =" 256 "/>

Cách hoạt động.

  • Đầu tiên, chúng tôi chuyển đổi MySQL String Length chuỗi thành bộ ký tự ucs2 , là UCS-2 Unicode chứa các ký tự 2 byte.
  • Thứ hai, chúng tôi sử dụng Các hàm CHAR_LENGTH LENGTH để lấy độ dài của chuỗi @s tính bằng byte và ký tự. Vì chuỗi @s chứa các ký tự 2 byte nên độ dài tính bằng ký tự là 19, trong khi độ dài tính bằng byte là 38.

Các câu lệnh sau đây chứng minh cách Các hàm LENGTH CHAR_LENGTH hoạt động với các ký tự 1 byte:

 

ĐẶT

@s =

CHUYỂN ĐỔI

(

'Độ dài chuỗi MySQL'

SỬ DỤNG

latin1);

CHỌN

CHIỀU DÀI

(@s),

CHAR_LENGTH

(@s);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Độ dài chuỗi MySQL - ký tự 1 byte

Chúng tôi sử dụng bộ ký tự latin1 cho chuỗi @s . Bộ ký tự latin1 chứa các ký tự 1 byte; do đó, độ dài tính bằng byte và độ dài ký tự bằng nhau.

Lưu ý rằng một số bộ ký tự chứa các ký tự có số byte có thể thay đổi, ví dụ: đối với bộ ký tự utf8 :

 

ĐẶT

@s =

CHUYỂN ĐỔI

(

'MySQL String Length'

SỬ DỤNG

utf8) ;

CHỌN

CHAR_LENGTH

(@s),

CHIỀU DÀI

(@s);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< img alt = "Độ dài chuỗi MySQL - ký tự nhiều byte" src = "https://www.mysqltutorial.org/wp-content/uploads/2013/05/MySQL-String-Length-1-byte-characters.png" title = "Độ dài chuỗi MySQL - ký tự nhiều byte" />

CHAR_LENGTH LENGTH trả về cùng một kết quả. Tuy nhiên, nếu một chuỗi có các ký tự đặc biệt, kết quả sẽ khác. Xem ví dụ sau:

 

SET

@s =

CHUYỂN ĐỔI

(

'á'

SỬ DỤNG utf8);

CHỌN

CHAR_LENGTH

(@s),

CHIỀU DÀI

(@s);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< img alt = "Độ dài chuỗi MySQL - ký tự 2 byte" class = "wp-image-2352" height = "48" src = "https://www.mysqltutorial.org/wp-content/uploads/2013/05/ MySQL-String-Length-2-byte-character.png "width =" 259 "/>

Một ứng dụng của hàm độ dài chuỗi MySQL

Giả sử chúng ta có một bài viết bảng lưu trữ các bài đăng trên blog với bốn cột postid , title , đoạn trích nội dung . (Chúng tôi làm cho bảng posts càng đơn giản càng tốt cho mục đích trình diễn).

Đầu tiên, chúng tôi tạo bảng posts bằng cách sử dụng Câu lệnh TẠO BẢNG :

 

TẠO

BẢNG

bài đăng ( postid

int

auto_increment primary

key

, title

varchar

(

255

)

KHÔNG

KHÔNG ĐẦY ĐỦ

, phần trích dẫn

varchar

(

255

)

KHÔNG

KHÔNG ĐẦY ĐỦ

,

nội dung

text

, datetime của pubdate )

Engine

=

InnoDB

;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Thứ hai, chúng tôi chèn một số bài đăng trên blog vào bảng posts bằng cách sử dụng INSERT statement :

 

CHÈN

VÀO

bài đăng (tiêu đề, đoạn trích,

nội dung

)

GIÁ TRỊ

(

'MySQL Length'

,

'Hàm độ dài chuỗi MySQL hướng dẫn '

,

' dummy '

), (

'Bài đăng thứ hai trên blog'

,

'Bài đăng thứ hai trên blog'

,

'dummy'

);

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc )

(

sql

)

Chúng tôi có thể sử dụng hàm CHAR_LENGTH để kiểm tra xem ngoại trừ có nhiều hơn 20 ký tự hay không, chúng tôi thêm dấu chấm lửng (…) vào đoạn trích dưới dạng truy vấn sau:

 

CHỌN

postid, Tiêu đề,

IF

(

CHAR_LENGTH

(phần trích dẫn) & gt;

20

,

CONCAT

(

LEFT

(phần trích dẫn,

20

) ,

'...'

), đoạn trích) tóm tắt

TỪ

bài viết;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

 Ứng dụng độ dài chuỗi MySQL

Trong Câu lệnh CHỌN , chúng tôi sử dụng Hàm IF để kiểm tra xem độ dài của cột đoạn trích có lớn hơn 20 hay không, chúng tôi nối đoạn mã đoạn trích với dấu chấm lửng (…) bằng cách sử dụng Câu lệnh CONCAT , nếu không, chúng ta chỉ nhận được đoạn trích .

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách sử dụng các hàm độ dài chuỗi MySQL để lấy độ dài. của một chuỗi tính bằng byte và ký tự.

Tham chiếu

  • http: // d ev.mysql.com/doc/refman/5.7/en/string-functions.html# Chức năng_length - Hàm LENGTH trong MySQL
  • http://dev.mysql.com/doc /refman/5.7/en/string-functions.html# Chức năng_char-length - Hàm CHAR_LENGTH trong MySQL

Hướng dẫn này có hữu ích không?


Xem thêm những thông tin liên quan đến chủ đề chiều dài mysql của chuỗi

MySql BINARY and VARBINARY Data Types

alt

  • Tác giả: The Flask
  • Ngày đăng: 2020-08-14
  • Đánh giá: 4 ⭐ ( 6797 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 🙏 Please consider SUBSCRIBING !!! 🧧 Patreon Donations: https://www.patreon.com/theflask

    Click "SHOW MORE" below to see the cool guides !!! 😎

    MySql BINARY and VARBINARY Data Types

    References:
    https://gist.github.com/joemalski/b7597dcdf010b13e82921e4f75a7bbe8
    https://dev.mysql.com/doc/refman/5.7/en/binary-varbinary.html
    https://dev.mysql.com/doc/refman/5.7/en/charset-binary-collations.html
    https://stackoverflow.com/questions/2182884/how-to-store-varbinary-in-mysql
    http://www.asciitable.com/
    https://www.rapidtables.com/convert/number/hex-to-binary.html
    https://www.mysqltutorial.org/mysql-show-columns/
    https://sqlsunday.com/2017/01/09/binary-types/

    BINARY - stores binary strings
    - has binary character set and collation
    - fixed-length just like CHAR, max size 255
    - syntax: BINARY or BINARY(length)

    VARBINARY - stores binary strings
    - has binary character set and collation
    - variable length just like VARCHAR, max length just like VARCHAR
    - syntax: VARBINARY(length)

    Max size see: https://dev.mysql.com/doc/refman/5.7/...

    Note: MySQL table has a maximum row size limit of 65,535 bytes.

    The storage requirements of individual columns constrain the
    number of columns that fit within a given maximum row size.
    Storage requirements for some data types depend on factors
    such as storage engine, storage format, and character set.

    -- Show BINARY and VARBINARY Character Set
    SHOW CHARACTER SET;

    -- BINARY Sample
    CREATE TABLE test (
    col1 BINARY,
    col2 BINARY(255)
    );

    DESC TABLE test;

    -- Show BINARY Max size = 255
    DROP TABLE test;

    CREATE TABLE test (
    col BINARY(256)
    );

    -- INSERT a 'Printable Data' and 'Non-Printable Data' (hexadecimal)
    CREATE TABLE test (
    col BINARY(25)
    );

    INSERT INTO test(col) VALUES ('Printable Data');
    SELECT * FROM test;

    -- Hexadecimal Values
    -- 0x46 is 'F' in ASCII
    -- 0x4c is 'L' in ASCII
    -- 0x41 is 'A' in ASCII
    -- 0x53 is 'S' in ASCII
    -- 0x4b is 'K' in ASCII
    INSERT INTO test(col) VALUES (0x46);
    SELECT * FROM test;

    INSERT INTO test(col) VALUES (0x464c41534b);
    SELECT * FROM test;

    -- Binary Values
    -- b'1000110' is 'F' in ASCII
    -- b'1001100' is 'L' in ASCII
    -- b'1000001' is 'A' in ASCII
    -- b'1010011' is 'S' in ASCII
    -- b'1001011' is 'K' in ASCII
    INSERT INTO test(col) VALUES (b'1000110');
    SELECT * FROM test;

    INSERT INTO test(col) VALUES (b'100011001001100010000010101001101001011');
    SELECT * FROM test;

    -- VARBINARY Sample
    CREATE TABLE test (
    col VARBINARY(50)
    );

    DESC test;

    INSERT INTO test(col) VALUES ('Printable Data');
    SELECT * FROM test;

    -- Hexadecimal Values
    -- 0x46 is 'F' in ASCII
    -- 0x4c is 'L' in ASCII
    -- 0x41 is 'A' in ASCII
    -- 0x53 is 'S' in ASCII
    -- 0x4b is 'K' in ASCII
    INSERT INTO test(col) VALUES (0x46);
    SELECT * FROM test;

    INSERT INTO test(col) VALUES (0x464c41534b);
    SELECT * FROM test;

    -- Binary Values
    -- b'1000110' is 'F' in ASCII
    -- b'1001100' is 'L' in ASCII
    -- b'1000001' is 'A' in ASCII
    -- b'1010011' is 'S' in ASCII
    -- b'1001011' is 'K' in ASCII
    INSERT INTO test(col) VALUES (b'1000110');
    SELECT * FROM test;

    INSERT INTO test(col) VALUES (b'100011001001100010000010101001101001011');
    SELECT * FROM test;

    -- Length Comparison: BINARY vs. VARBINARY
    DROP TABLE test;

    CREATE TABLE test (
    col1 BINARY(10),
    col2 VARBINARY(10)
    );

    DESC test;

    INSERT INTO test(col1, col2) VALUES (0x464c41534b, 0x464c41534b);

    SELECT * FROM test;

    CHAR and VARCHAR has BINARY attribute, don't confuse it with
    the BINARY and VARBINARY Data Types.

    It causes the binary (_bin) collation for the column character set (or the table default character set if no column character set is specified) to be used, and the column itself stores nonbinary character strings rather than binary byte strings.

    DROP TABLE test;

    CREATE TABLE test (
    col1 CHAR(10),
    col2 VARCHAR(25),
    col3 CHAR(10) BINARY,
    col4 VARCHAR(25) BINARY,
    col5 BINARY(10),
    col6 VARBINARY(25)
    );

    SHOW FULL COLUMNS FROM test;

    🙏 Please consider SUBSCRIBING !!! 🧧 Patreon Donations: https://www.patreon.com/theflask

    DISCLAIMER:
    All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.

    Use of MySQL Conditional Use Logos:
    https://bit.ly/3iwhu4I

Hàm LENGTH trong MySQL

  • Tác giả: freetuts.net
  • Đánh giá: 3 ⭐ ( 4699 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hướng dẫn sử dụng hàm LENGTH trong MySQL, Hàm LENGTH trả về độ dài của chuỗi đã chỉ định.

Hàm xử lý chuỗi trong SQL

  • Tác giả: vietjack.com
  • Đánh giá: 5 ⭐ ( 7535 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hàm xử lý chuỗi trong SQL - Học SQL cơ bản nâng cao. Học SQL trực tuyến theo các bước từ Khái niệm về database, Cú pháp SQL, Truy vấn SELECT, Truy vấn INSERT, Lệnh DELETE, Truy vấn UPDATE, Ràng buộc (Constraint), Truy vấn DROP, Lệnh TRUNCATE, Từ khóa DISTINCT, Mệnh đề ORDER BY, Mệnh đề GROUP BY, Mệnh đề WHERE, Sử dụng Join, Sử dụng View, Sử dụng Sequence, Transaction, Hàm xử lý, Bảng tạm, Toán tử.

các kiểu dữ liệu mysql

  • Tác giả: nongdanit.info
  • Đánh giá: 3 ⭐ ( 3255 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Kiểu dữ liệu trong MySQL, các kiểu dữ liệu trong mysql, các kiểu dữ liệu cơ bản trong mysql, hướng dẫn mysql nongdanit, sử dụng kieu du lieu trong mysql

MySQL - chiều dài () so với char_length ()

  • Tác giả: qastack.vn
  • Đánh giá: 4 ⭐ ( 3784 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] LENGTH()trả về độ dài của chuỗi được đo bằng byte . CHAR_LENGTH()trả về độ dài của…

Bài MySQL 9: Các kiểu dữ liệu trong MySQL

  • Tác giả: vietpro.net.vn
  • Đánh giá: 3 ⭐ ( 9624 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Việc xác định đúng các trường dữ liệu trong một table là một điều rất quan trọng. Vậy cùng VietPro tìm hiểu các kiểu dữ liệu trong Mysql tại đây

Dữ liệu và cấu trúc trong MySQL

  • Tác giả: openplanning.net
  • Đánh giá: 5 ⭐ ( 2307 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Bài 6 - Tạo Tabs bằng Bootstrap

By ads_php