Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah postgresql serasi dengan MySQL if function

Bagaimanakah postgresql serasi dengan MySQL if function

PHPz
PHPzke hadapan
2023-06-01 19:52:122672semak imbas

    postgresql serasi dengan MySQL if function

    if function description

    Penggunaan if() function dalam mysql adalah serupa dengan tiga fungsi dalam java Ungkapan tujuan mempunyai banyak kegunaan Sintaks khusus adalah seperti berikut:

    IF(expr1,expr2,expr3 Jika nilai expr1 adalah benar, maka nilai expr2 dikembalikan nilai expr1 adalah palsu, kemudian Kembalikan nilai expr3

    postgresql custom jika fungsi serasi

    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 serasi penyesuaian

    Perbezaan penggunaan SQL

    1 . dwi jadual

    Jadual unik Oracle, tujuannya adalah untuk mengehadkan struktur lengkap pernyataan sql

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

    mysql dan pgsql tidak mempunyai jadual ini, anda boleh mengeluarkannya terus

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

    2 jenis Boolean

    oracle dan mysql tidak mempunyai jenis boolean, anda boleh menggunakan nombor (int) atau char sebaliknya

    pgsql mempunyai jenis bool, nombor dan aksara ditukar secara automatik kepada jenis boolean (0→f, 1→t, tidak→f, ya→t)

    3 >

    pgsql tidak berkenaan, disokong oleh mysql dan oracle

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

    4 Melepasi nilai rentetan

    pgsql dan oracle hanya menyokong petikan tunggal
    select * from table_name where name = 'abc'

    mysql menyokong petikan tunggal dan berganda

    select * from table_name where name = "abc"

    5 Sisipan Batch

    mysql, pgsql batch insert

    insert into table_name() values()

    oracle batch.

    insert all into table_name() values()

    mybatis serasi dengan pangkalan data yang berbeza

    Gunakan tag if untuk menentukan _databaseId dan masing-masing menyesuaikan diri dengan pangkalan data yang berbeza:

    <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>

    Atas ialah kandungan terperinci Bagaimanakah postgresql serasi dengan MySQL if function. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam