Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

PHPz
Freigeben: 2023-06-01 19:52:12
nach vorne
2675 Leute haben es durchsucht

    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;
    Nach dem Login kopieren

    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
    Nach dem Login kopieren

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

    select (select * from table_name where age = 20) t
    Nach dem Login kopieren

    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
    Nach dem Login kopieren

    4. String-Wert

    pgsql, Oracle nur unterstützt einfache Anführungszeichen

    select * from table_name where name = 'abc'
    Nach dem Login kopieren

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

    select * from table_name where name = "abc"
    Nach dem Login kopieren

    5. Batch-Einfügung

    MySQL, PGSQL-Batch-Einfügung

    insert into table_name() values()
    Nach dem Login kopieren

    Oracle-Batch-Einfügung

    insert all into table_name() values()
    Nach dem Login kopieren

    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>
    Nach dem Login kopieren

    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!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage