Rumah  >  Artikel  >  pangkalan data  >  Perangkap yang dihadapi dalam nilai penyambungan oracle/mysql dan cara menggunakan bar menegak berganda || dan concat

Perangkap yang dihadapi dalam nilai penyambungan oracle/mysql dan cara menggunakan bar menegak berganda || dan concat

PHPz
PHPzke hadapan
2023-05-28 20:13:281991semak imbas

    nilai penggabungan mysql oracle ditemui pit bar menegak berganda || concat

    ||

    "||" dalam oracle ialah nilai Splicing , tetapi dalam mysql ia bermaksud "atau".

    where name like '%' || 'Tony' || '%'

    Jadi adalah disyorkan untuk menggunakan concat()

    concat()

    Tetapi concat() juga mempunyai perangkap.

    Dalam mysql, anda boleh terus menggunakan concat untuk menyambung 3 nilai Dalam

    concat( '%' , 'Tonny' , '%' )

    oracle, penggunaan ini adalah salah. Disebabkan concat Oracle hanya boleh menyambung 2 nilai, ia perlu seperti ini:

    concat( '%' , concat('Tonny' , '%') )

    Penyambungan medan dalam Oracle CONCAT dan ||

    Dalam Oracle, terdapat dua kaedah penyambungan rentetan iaitu CONCAT () fungsi dan "||" penyambungan

    1 CONCAT() penyambungan fungsi

    Kelemahan: hanya menyokong penyambungan dua rentetan, jika lebih daripada dua, ralat akan menjadi. dilaporkan (laporan Ralat kelihatan seperti kurungan kanan yang hilang)

    //表中的两个字段拼接
    select concat(t1.column_1,t1.column_2) from table t1;//任意一个字段与任意字符串拼接 (time是取的别名,记住:Oracle 取别名不要用as )
    select concat('时间是: ',t1.column_2) time from table t1;
    select concat(t1.column_1,' 单位:元') time from table t1;//超过两个字段,会报错(下面这样写会报错)
    select concat(t1.column_1,t1.column_2,t1.column_3) from table t1;

    Apabila menggunakan fungsi CONCAT() untuk menyambung rentetan, jika terdapat aksara Cina dalam medan yang disambung (rentetan ), aksara bercelaru mungkin terhasil >Gunakan "|| "Splicing, tiada sekatan

    //如果遇到乱码,加上to_char()
    select concat(to_char(t1.column_1),to_char(t1.column_2)) time from table t1;

    Kelebihan menggunakan "||" splicing, apabila melakukan

    pertanyaan kabur, anda boleh menggunakan ini

    //表中两个字符串拼接,取别名为time
    select t1.column_1 || t1.column_2 time from table t1;//表中三个字符串拼接,取别名为time
    //这里可以使用括号将几个要拼接的字段括起来,可读性会好点,好像加不加括号都不影响
    select (t1.column_1 || t1.column_2 || t1.column_3) time from table t1;

    Tambahan: mysql menggunakan Perangkap yang dihadapi oleh concat atau || semasa menggabungkan rentetan

    Untuk keperluan perniagaan, beberapa medan telah disambungkan ke dalam satu medan untuk pertanyaan, dan didapati semuanya kosong Kemudian, selepas itu mencari dalam talian, saya dapati: Gunakan ||.

    Atas ialah kandungan terperinci Perangkap yang dihadapi dalam nilai penyambungan oracle/mysql dan cara menggunakan bar menegak berganda || dan concat. 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