sql >> Databasteknik >  >> RDS >> Mysql

Kan MySQL ersätta flera tecken?

Du kan kedja REPLACE-funktioner:

select replace(replace('hello world','world','earth'),'hello','hi')

Detta kommer att skriva ut hi earth .

Du kan till och med använda underfrågor för att ersätta flera strängar!

select replace(london_english,'hello','hi') as warwickshire_english
from (
    select replace('hello world','world','earth') as london_english
) sub

Eller använd en JOIN för att ersätta dem:

select group_concat(newword separator ' ')
from (
    select 'hello' as oldword
    union all
    select 'world'
) orig
inner join (
    select 'hello' as oldword, 'hi' as newword
    union all
    select 'world', 'earth'
) trans on orig.oldword = trans.oldword

Jag lämnar översättning med vanliga tabelluttryck som en övning för läsaren;)



  1. Garanterar UNION ALL ordningen på resultatuppsättningen

  2. Ta bort dubbletter av rader i SQL Server

  3. 2 sätt att lägga till ledande nollor i PostgreSQL

  4. MySQL DATEDIFF() vs TIMESTAMPDIFF():Vad är skillnaden?