sql >> Database teknologi >  >> RDS >> MariaDB

7 muligheder for at aktivere rør (||) som sammenkædningsoperatør i MariaDB

Som standard to rørtegn (|| ) behandles som en logisk OR operatør i MariaDB. Du kan dog ændre denne adfærd, hvis du vil.

Du kan opdatere din sql_mode for at inkludere PIPES_AS_CONCAT mulighed, i hvilket tilfælde to rør vil blive behandlet som en sammenkædningsoperator.

Der er en del måder at tilføje denne mulighed til din sql_mode . Du kan tilføje det eksplicit. Eller du kan indstille din sql_mode til en indstilling, der sætter den implicit.

Jeg gennemgår disse muligheder nedenfor.

Tilføj PIPES_AS_CONCAT Eksplicit

Hvis du ikke ønsker at ødelægge din eksisterende sql_mode indstillinger, kan du køre følgende kode:

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

Det tilføjer PIPES_AS_CONCAT uden at fjerne andet. Jeg kunne have brugt sql_mode = 'PIPES_AS_CONCAT' , men jeg ville have mistet alle eksisterende muligheder. Brug af ovenstående teknik sikrer, at jeg ikke mister nogen eksisterende muligheder.

Lad os tjekke min eksisterende sql_mode indstillinger efter at have kørt den kode:

SELECT @@sql_mode;

Resultat:

PIPES_AS_CONCAT,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Vi kan se den PIPES_AS_CONCAT er inkluderet sammen med andre muligheder, der allerede eksisterede.

ANSI

En anden måde at gøre det på er at indstille sql_mode til ANSI :

SET sql_mode='ANSI';

ANSI tilstand ændrer syntaks og adfærd, så den passer tættere til standard SQL.

Bemærk, at dette vil fjerne alle eksisterende indstillinger og kun bruge de indstillinger, der gælder for ANSI mulighed.

For at demonstrere dette, lad os tage et nyt kig på min sql_mode efter at have sat den til ANSI :

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

Resultat:

REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI

Vi kan se, at min sql_mode er fuldstændig ændret.

DB2

På samme måde kan vi indstille vores sql_mode at være mere i harmoni med forskellige DBMS'er.

Sådan indstilles den til at bruge DB2-konventioner:

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

Resultat:

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

Det er de muligheder, der passer til DB2.

MaxDB

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

Resultat:

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

SQL-server

Brug MSSQL for at indstille den til at bruge SQL Server-konventioner:

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

Resultat:

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;

Resultat:

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 mulighed tilføjes kun, når du bruger MariaDB 10.3 og nyere.

PostgreSQL

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

Resultat:

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

  1. Saml kolonner med yderligere (særskilte) filtre

  2. Indsæt et billede i postgresql database

  3. Hvordan kan jeg ændre MariaDB til MySQL i XAMPP?

  4. SQLite DROP VIEW