Heim  >  Artikel  >  Datenbank  >  Beim Spleißen von Oracle/MySQL-Werten und der Verwendung doppelter vertikaler Balken || und concat

Beim Spleißen von Oracle/MySQL-Werten und der Verwendung doppelter vertikaler Balken || und concat

PHPz
PHPznach vorne
2023-05-28 20:13:282008Durchsuche

    Oracle-MySQL-Fallstricke beim Zusammenfügen von Werten ||

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

    Es wird also empfohlen, concat()

    concat()

    aber concat() hat auch Fallstricke. In

    MySQL können Sie concat direkt verwenden, um 3 Werte zu verbinden. In

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

    oracle ist diese Verwendung falsch. Da Oracles Concat nur zwei Werte verbinden kann, muss es so aussehen:

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

    Feldspleißung in Oracle CONCAT und ||

    In Oracle gibt es zwei Methoden zum Stringspleißen, nämlich die Funktion CONCAT() und „||“. „Spleißen

    1. CONCAT()-Funktionsspleißen

    Nachteile: Unterstützt nur das Spleißen von zwei Zeichenfolgen. Wenn mehr als zwei vorhanden sind, wird ein Fehler gemeldet (der gemeldete Fehler scheint eine fehlende rechte Klammer zu sein)

    //表中的两个字段拼接
    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;

    Bei Verwendung von CONCAT() Wenn das gespleißte Feld (String) chinesische Zeichen enthält, kann es zu verstümmelten Zeichen kommen. Die Lösung besteht darin, to_char() zum gespleißten Feld (String) hinzuzufügen ):

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

    2. Verwenden Sie „||“, um Zeichenfolgen zu verbinden. Es gibt keine Einschränkungen. Sie können dies verwenden

    //表中两个字符串拼接,取别名为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;

    Hinzufügen: Probleme, auf die MySQL bei der Verwendung von concat oder || zum Zusammenfügen von Zeichenfolgen stößt

    Aus geschäftlichen Gründen wurden mehrere Felder zur Abfrage in ein Feld zusammengefasst, und es wurde festgestellt, dass sie alle leer waren Nach der Überprüfung habe ich später nach einer Online-Suche Folgendes gefunden:

    Verwenden Sie || oder concat, um Zeichen zu verbinden. Wenn einer von ihnen null ist, wird er zu null

    Kann durch die Verwendung von concat_ws vermieden werden

    Das obige ist der detaillierte Inhalt vonBeim Spleißen von Oracle/MySQL-Werten und der Verwendung doppelter vertikaler Balken || und concat. 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