MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách hoạt động của COERCIBILITY () trong MariaDB

Trong MariaDB, COERCIBILITY() là một hàm hệ thống trả về giá trị cưỡng chế đối chiếu của đối số chuỗi của nó.

Nó xác định cách các đối chiếu sẽ được chuyển đổi trong trường hợp xung đột đối chiếu. Trong những xung đột như vậy, một biểu thức có độ cưỡng chế cao hơn được chuyển đổi thành đối chiếu của một biểu thức có độ cưỡng chế thấp hơn.

Cú pháp

Cú pháp như sau:

COERCIBILITY(str)

Ở đâu str là biểu thức mà bạn muốn có được tính cưỡng chế.

COERCIBILITY() hàm trả về giá trị giữa 05 , như được nêu trong bảng sau:

Khả năng cưỡng chế Mô tả Ví dụ
0 Rõ ràng Giá trị sử dụng COLLATE mệnh đề
1 Không đối chiếu Các chuỗi được nối bằng cách sử dụng các đối chiếu khác nhau
2 Ngụ ý Giá trị cột
3 Không đổi Giá trị trả về từ các hàm như USER() , VERSION() , v.v.
4 Có thể cưỡng chế Chuỗi chữ
5 Không thể bỏ qua NULL hoặc bắt nguồn từ NULL

Ví dụ

Dưới đây là một ví dụ để chứng minh:

SELECT COERCIBILITY('Green');

Kết quả:

+-----------------------+
| COERCIBILITY('Green') |
+-----------------------+
|                     4 |
+-----------------------+

Đây là một chuỗi bình thường và do đó, khả năng cưỡng chế là 4 .

Sự cấu kết rõ ràng

Dưới đây là một ví dụ về việc chỉ định rõ ràng đối chiếu với COLLATE mệnh đề:

SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);

Kết quả:

+-----------------------------------------------+
| COERCIBILITY('Mango' COLLATE utf8_spanish_ci) |
+-----------------------------------------------+
|                                             0 |
+-----------------------------------------------+

Điều này trả về 0 bởi vì tôi đã chỉ định rõ ràng đối chiếu với COLLATE mệnh đề.

Cột cơ sở dữ liệu

Trong ví dụ này, tôi trả về dữ liệu từ một cột cơ sở dữ liệu.:

SELECT 
    PetName,
    COERCIBILITY(PetName)
FROM Pets
LIMIT 1;

Kết quả:

+---------+-----------------------+
| PetName | COERCIBILITY(PetName) |
+---------+-----------------------+
| Fluffy  |                     2 |
+---------+-----------------------+

Thực tế rằng đó là một cột cơ sở dữ liệu có nghĩa là nó là một đối chiếu ngầm và do đó chúng tôi nhận được một khả năng cưỡng chế là 2 .

Hằng số

Trong ví dụ này, tôi nhận được tính cưỡng chế của giá trị trả về từ VERSION() có sẵn chức năng:

SELECT COERCIBILITY(VERSION());

Kết quả:

+-------------------------+
| COERCIBILITY(VERSION()) |
+-------------------------+
|                       3 |
+-------------------------+

Giá trị rỗng

Đây là những gì sẽ xảy ra khi chúng ta vượt qua null :

SELECT COERCIBILITY(null);

Kết quả:

+--------------------+
| COERCIBILITY(null) |
+--------------------+
|                  6 |
+--------------------+

Giá trị rỗng có thể bỏ qua và do đó, chúng tôi nhận được khả năng cưỡng chế là 6 .

Không tranh luận

Đang gọi COERCIBILITY() mà không có bất kỳ đối số nào dẫn đến lỗi:

SELECT COERCIBILITY();

Kết quả:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'COERCIBILITY'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng Sysbench để tạo dữ liệu thử nghiệm cho bảng phân mảnh trong MySQL

  2. Cách tạo số nguyên ngẫu nhiên trong phạm vi trong MariaDB

  3. MariaDB JSON_MERGE_PRESERVE () Giải thích

  4. Cách UNCOMPRESSED_LENGTH () hoạt động trong MariaDB

  5. Giới thiệu về Triển khai MySQL bằng vai trò Ansible