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
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;
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 oracleupdate 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"
mysql, pgsql batch insert
insert into table_name() values()
oracle batch.
insert all into table_name() values()
mybatis serasi dengan pangkalan data yang berbeza
<insert id="insertBatch" parameterType="java.util.List"> <if test="_databaseId=='mysql' or _databaseId=='postgresql'"> 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=='oracle'"> 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!