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

7 Tùy chọn để Kích hoạt Pipes (||) làm Toán tử Kết nối trong MariaDB

Theo mặc định, hai ký tự ống dẫn (|| ) được coi là OR lôgic toán tử trong MariaDB. Tuy nhiên, bạn có thể thay đổi hành vi này nếu muốn.

Bạn có thể cập nhật sql_mode của mình để bao gồm PIPES_AS_CONCAT tùy chọn, trong trường hợp này, hai đường ống sẽ được coi như một toán tử nối.

Có khá nhiều cách để thêm tùy chọn này vào sql_mode của bạn . Bạn có thể thêm nó một cách rõ ràng. Hoặc bạn có thể đặt sql_mode của mình thành một tùy chọn đặt nó một cách ngầm định.

Tôi chạy qua các tùy chọn này bên dưới.

Thêm PIPES_AS_CONCAT Rõ ràng

Nếu bạn không muốn làm xáo trộn sql_mode hiện có của mình cài đặt, bạn có thể chạy mã sau:

SET sql_mode=(SELECT CONCAT(@@sql_mode,',PIPES_AS_CONCAT')); 

Điều đó thêm PIPES_AS_CONCAT mà không cần loại bỏ bất cứ thứ gì khác. Tôi có thể đã sử dụng sql_mode = 'PIPES_AS_CONCAT' , nhưng tôi sẽ mất tất cả các tùy chọn hiện có. Sử dụng kỹ thuật trên đảm bảo rằng tôi không mất bất kỳ tùy chọn hiện có nào.

Hãy kiểm tra sql_mode hiện có của tôi cài đặt sau khi chạy mã đó:

SELECT @@sql_mode;

Kết quả:

PIPES_AS_CONCAT,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Chúng ta có thể thấy rằng PIPES_AS_CONCAT được bao gồm cùng với các tùy chọn khác đã tồn tại.

ANSI

Một cách khác để làm điều đó là đặt sql_mode thành ANSI :

SET sql_mode='ANSI';

ANSI chế độ thay đổi cú pháp và hành vi để phù hợp hơn với SQL chuẩn.

Lưu ý rằng thao tác này sẽ xóa mọi cài đặt hiện có và chỉ sử dụng những cài đặt áp dụng cho ANSI tùy chọn.

Để chứng minh điều này, chúng ta hãy xem xét lại sql_mode của tôi sau khi đặt nó thành ANSI :

SET sql_mode='ANSI';
SELECT @@sql_mode;

Kết quả:

REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI

Chúng tôi có thể thấy rằng sql_mode của tôi đã hoàn toàn thay đổi.

DB2

Cùng dòng, chúng ta có thể đặt sql_mode để hòa hợp hơn với các DBMS khác nhau.

Dưới đây là cách đặt nó để sử dụng các quy ước DB2:

SET sql_mode='DB2';
SELECT @@sql_mode;

Kết quả:

PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,DB2,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS

Đó là những tùy chọn phù hợp với DB2.

MaxDB

SET sql_mode='MAXDB';
SELECT @@sql_mode;

Kết quả:

PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER

Máy chủ SQL

Sử dụng MSSQL để đặt nó sử dụng các quy ước của SQL Server:

SET sql_mode='MSSQL';
SELECT @@sql_mode;

Kết quả:

PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MSSQL,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS

Oracle

SET sql_mode='ORACLE';
SELECT @@sql_mode;

Kết quả:

PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,SIMULTANEOUS_ASSIGNMENT

SIMULTANEOUS_ASSIGNMENT tùy chọn chỉ được thêm vào khi sử dụng MariaDB 10.3 trở lên.

PostgreSQL

SET sql_mode='POSTGRESQL';
SELECT @@sql_mode;

Kết quả:

PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,POSTGRESQL,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách định dạng số trong MariaDB

  2. MariaDB DAY () Giải thích

  3. Có gì mới trong MariaDB MaxScale 2.4

  4. Query Outlier là gì và Cách khắc phục

  5. Đồ thị tùy chỉnh để theo dõi các hệ thống MySQL, MariaDB, MongoDB và PostgreSQL của bạn - Mẹo &Thủ thuật ClusterControl