MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

7 Options pour activer les canaux (||) en tant qu'opérateur de concaténation dans MariaDB

Par défaut, deux caractères pipe (|| ) sont traités comme un OR logique opérateur dans MariaDB. Cependant, vous pouvez modifier ce comportement si vous le souhaitez.

Vous pouvez mettre à jour votre sql_mode pour inclure le PIPES_AS_CONCAT option, auquel cas deux canaux seront traités comme un opérateur de concaténation.

Il existe plusieurs façons d'ajouter cette option à votre sql_mode . Vous pouvez l'ajouter explicitement. Ou vous pouvez définir votre sql_mode à une option qui la définit implicitement.

Je passe en revue ces options ci-dessous.

Ajouter PIPES_AS_CONCAT Explicitement

Si vous ne voulez pas gâcher votre sql_mode existant paramètres, vous pouvez exécuter le code suivant :

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

Cela ajoute PIPES_AS_CONCAT sans enlever quoi que ce soit d'autre. J'aurais pu utiliser sql_mode = 'PIPES_AS_CONCAT' , mais j'aurais perdu toutes les options existantes. L'utilisation de la technique ci-dessus garantit que je ne perds aucune option existante.

Vérifions mon sql_mode existant paramètres après avoir exécuté ce code :

SELECT @@sql_mode;

Résultat :

PIPES_AS_CONCAT,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Nous pouvons voir que PIPES_AS_CONCAT est inclus avec d'autres options qui existaient déjà.

ANSI

Une autre façon de le faire est de définir le sql_mode à ANSI :

SET sql_mode='ANSI';

ANSI le mode modifie la syntaxe et le comportement pour se conformer plus étroitement au SQL standard.

Notez que cela supprimera tous les paramètres existants et n'utilisera que les paramètres applicables à l'ANSI option.

Pour le démontrer, regardons à nouveau mon sql_mode après l'avoir défini sur ANSI :

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

Résultat :

REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI

Nous pouvons voir que mon sql_mode a complètement changé.

DB2

Dans le même ordre d'idées, nous pouvons définir notre sql_mode pour être plus en phase avec les différents SGBD.

Voici comment le configurer pour utiliser les conventions DB2 :

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

Résultat :

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

Ce sont les options qui s'alignent sur DB2.

MaxDB

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

Résultat :

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

SQL Server

Utiliser MSSQL pour le configurer afin qu'il utilise les conventions SQL Server :

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

Résultat :

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;

Résultat :

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

Le SIMULTANEOUS_ASSIGNMENT l'option n'est ajoutée que lors de l'utilisation de MariaDB 10.3 et supérieur.

PostgreSQL

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

Résultat :

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