MariaDB
 sql >> база данни >  >> RDS >> MariaDB

7 опции за активиране на тръби (||) като оператор за конкатенация в MariaDB

По подразбиране два символа с вертикална линия (|| ) се третират като логическо OR оператор в MariaDB. Можете обаче да промените това поведение, ако желаете.

Можете да актуализирате своя sql_mode за да включите PIPES_AS_CONCAT опция, в който случай две тръби ще бъдат третирани като оператор на конкатенация.

Има доста начини да добавите тази опция към вашия sql_mode . Можете да го добавите изрично. Или можете да зададете своя sql_mode до опция, която го задава имплицитно.

Преглеждам тези опции по-долу.

Добавете PIPES_AS_CONCAT Изрично

Ако не искате да объркате съществуващия си sql_mode настройки, можете да изпълните следния код:

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

Това добавя PIPES_AS_CONCAT без да премахвате нищо друго. Бих могъл да използвам sql_mode = 'PIPES_AS_CONCAT' , но щях да загубя всички съществуващи опции. Използването на горната техника гарантира, че няма да загубя съществуващи опции.

Нека проверим моя съществуващ sql_mode настройки след стартиране на този код:

SELECT @@sql_mode;

Резултат:

PIPES_AS_CONCAT,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Можем да видим, че PIPES_AS_CONCAT е включен заедно с други опции, които вече съществуват.

ANSI

Друг начин да го направите е да зададете sql_mode към ANSI :

SET sql_mode='ANSI';

ANSI режимът променя синтаксиса и поведението, за да съответства в по-голяма степен на стандартния SQL.

Имайте предвид, че това ще премахне всички съществуващи настройки и ще използва само тези настройки, приложими за ANSI опция.

За да демонстрираме това, нека да разгледаме отново моя sql_mode след като го настроите на ANSI :

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

Резултат:

REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI

Можем да видим, че моят sql_mode напълно се промени.

DB2

По същия начин можем да зададем нашия sql_mode за да сте по-съобразени с различни СУБД.

Ето как да го настроите да използва DB2 конвенции:

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

Резултат:

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

Това са опциите, които са в съответствие с DB2.

MaxDB

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

Резултат:

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

SQL сървър

Използвайте MSSQL за да го настроите да използва конвенциите на SQL Server:

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

Резултат:

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

Оракул

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

Резултат:

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 опцията се добавя само при използване на MariaDB 10.3 и по-нова версия.

PostgreSQL

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

Резултат:

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. MariaDB Единици за дата и време

  2. Как да стартирате PHP 5 приложения с MySQL 8.0 на CentOS 7

  3. 5 функции за извличане на номера на седмицата от дата в MariaDB

  4. Как RTRIM() работи в MariaDB

  5. Как да отстраните проблеми с MySQL базата данни