Heim > Datenbank > MySQL-Tutorial > 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
Freigeben: 2023-05-28 20:13:28
nach vorne
2048 Leute haben es durchsucht

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

    where name like '%' || 'Tony' || '%'
    Nach dem Login kopieren

    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' , '%' )
    Nach dem Login kopieren

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

    concat( '%' , concat('Tonny' , '%') )
    Nach dem Login kopieren

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

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

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

    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