MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

7 opcji włączania potoków (||) jako operatora konkatenacji w MariaDB

Domyślnie dwa znaki pionowe (|| ) są traktowane jako logiczne OR operator w MariaDB. Możesz jednak zmienić to zachowanie, jeśli chcesz.

Możesz zaktualizować swój sql_mode aby uwzględnić PIPES_AS_CONCAT opcja, w którym to przypadku dwie rury będą traktowane jako operator konkatenacji.

Istnieje kilka sposobów dodania tej opcji do twojego sql_mode . Możesz to dodać wprost. Lub możesz ustawić swój sql_mode na opcję, która ustawia ją niejawnie.

Poniżej przedstawiam te opcje.

Dodaj PIPES_AS_CONCAT Jawnie

Jeśli nie chcesz zepsuć swojego istniejącego sql_mode ustawienia, możesz uruchomić następujący kod:

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

To dodaje PIPES_AS_CONCAT bez usuwania czegokolwiek innego. Mogłem użyć sql_mode = 'PIPES_AS_CONCAT' , ale straciłbym wszystkie istniejące opcje. Korzystanie z powyższej techniki zapewnia, że ​​nie stracę żadnych istniejących opcji.

Sprawdźmy mój istniejący sql_mode ustawienia po uruchomieniu tego kodu:

SELECT @@sql_mode;

Wynik:

PIPES_AS_CONCAT,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Widzimy, że PIPES_AS_CONCAT jest dołączony wraz z innymi opcjami, które już istniały.

ANSI

Innym sposobem na to jest ustawienie sql_mode do ANSI :

SET sql_mode='ANSI';

ANSI mode zmienia składnię i zachowanie, aby były bardziej zgodne ze standardowym SQL.

Pamiętaj, że spowoduje to usunięcie wszystkich istniejących ustawień i użycie tylko tych ustawień, które dotyczą ANSI opcja.

Aby to zademonstrować, spójrzmy jeszcze raz na mój sql_mode po ustawieniu go na ANSI :

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

Wynik:

REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI

Widzimy, że mój sql_mode całkowicie się zmienił.

DB2

W ten sam sposób możemy ustawić nasz sql_mode być bardziej w zgodzie z różnymi systemami DBMS.

Oto jak ustawić go tak, aby używał konwencji DB2:

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

Wynik:

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

To są opcje, które są zgodne z DB2.

Maksymalna baza danych

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

Wynik:

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

Serwer SQL

Użyj MSSQL aby ustawić go tak, aby używał konwencji SQL Server:

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

Wynik:

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

Wyrocznia

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

Wynik:

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 opcja jest dodawana tylko w przypadku korzystania z MariaDB 10.3 i nowszych.

PostgreSQL

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

Wynik:

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. Porównanie wysokiej dostępności bazy danych — replikacja MySQL/MariaDB i Oracle Data Guard

  2. Jak WEEKOFYEAR() działa w MariaDB

  3. Jak działa LTRIM_ORACLE() w MariaDB

  4. Jak działa LN() w MariaDB

  5. Dostarczanie szybszych innowacji do społeczności MariaDB