Heim  >  Artikel  >  Datenbank  >  Wie ist Postgresql mit der MySQL-IF-Funktion kompatibel?

Wie ist Postgresql mit der MySQL-IF-Funktion kompatibel?

PHPz
PHPznach vorne
2023-06-01 19:52:122609Durchsuche

    postgresql ist mit der MySQL-if-Funktion kompatibel

    if-Funktionsbeschreibung

    Die Verwendung der if()-Funktion in MySQL ähnelt dem ternären Ausdruck in Java und hat viele Verwendungsmöglichkeiten. Die spezifische Syntax lautet wie folgt:

    IF( expr1, expr2, expr3), wenn der Wert von expr1 wahr ist, wird der Wert von expr2 zurückgegeben, wenn der Wert von expr1 falsch ist, wird der Wert von expr3 zurückgegeben

    Postgresql benutzerdefiniert, wenn die Funktion kompatibel ist

    create or replace function if(bln boolean,inValue1 anyelement,inValue2 anyelement)
    returns anyelement as
    $$
    begin
    if bln=true then
       return inValue1;
    else
       return inValue2;
    end if;
    end;
    $$
    language plpgsql;
    
    create or replace function if(bln boolean,inValue1 numeric,inValue2 numeric)
    returns numeric as
    $$
    begin
    if bln=true then
       return inValue1;
    else
       return inValue2;
    end if;
    end;
    $$
    language plpgsql;
    
    create or replace function if(bln boolean,inValue1 numeric,inValue2 text)
    returns text as
    $$
    begin
    if bln=true then
       return inValue1;
    else
       return inValue2;
    end if;
    end;
    $$
    language plpgsql;

    MySQL, Oracle, Postgresql-kompatibel. Unterschiede bei der Verwendung von

    SQL

    1. Die einzigartige Tabelle von Oracle besteht darin, die vollständige Struktur von SQL-Anweisungen einzuschränken.

    select (select * from table_name where age = 20) t from dual

    MySQL und PGSQL haben diese Tabelle nicht, Sie können sie direkt verwenden entferne es

    select (select * from table_name where age = 20) t

    2. Boolescher Typ

    Oracle und MySQL haben keinen booleschen Typ, Sie können stattdessen Zahl (int) oder char verwenden

    pgsql hat einen booleschen Typ, Zahlen und Zeichen werden automatisch in einen booleschen Typ (0&rarr) konvertiert ;f, 1→t, nein→f, ja→t)

    3. Tabellenalias aktualisieren

    pgsql ist nicht anwendbar, MySQL- und Oracle-Unterstützung

    update table_name t set t.name = 'abc' where id = 1

    4. String-Wert

    pgsql, Oracle nur unterstützt einfache Anführungszeichen

    select * from table_name where name = 'abc'

    MySQL-Einzelanführungszeichen/doppelte Anführungszeichen werden unterstützt

    select * from table_name where name = "abc"

    5. Batch-Einfügung

    MySQL, PGSQL-Batch-Einfügung

    insert into table_name() values()

    Oracle-Batch-Einfügung

    insert all into table_name() values()

    Mybatis ist mit verschiedenen Datenbanken kompatibel

    Verwenden Sie das if-Tag um _databaseId zu beurteilen und an verschiedene Datenbanken anzupassen, spezifischer Code Wie folgt:

    <insert id="insertBatch" parameterType="java.util.List">
        <if test="_databaseId==&#39;mysql&#39; or _databaseId==&#39;postgresql&#39;">
            insert into table_name 
            (<include refid="insertBatchColumn"></include>)
            values
            <foreach collection="list" item="item" index="index" separator="," >
                (<include refid="insertBatchValue"></include>)
            </foreach>
        </if>
        <if test="_databaseId==&#39;oracle&#39;">
            insert all
            <foreach collection="list" item="item" index="index" separator="">
                into table_name 
                (<include refid="insertBatchColumn"></include>)
                values (<include refid="insertBatchValue"></include>)
            </foreach>
            select * from dual
        </if>
    </insert>
     
    <sql id="insertBatchColumn">
        id,name,age,gender
    </sql>
    <sql id="insertBatchValue">
        #{item.id,jdbcType=VARCHAR}, #{item.name,jdbcType=VARCHAR}, 
        #{item.age,jdbcType=INTEGER},#{item.gender,jdbcType=INTEGER}
    </sql>

    Das obige ist der detaillierte Inhalt vonWie ist Postgresql mit der MySQL-IF-Funktion kompatibel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen