2

現在、アプリケーションの検索と置換機能を開発しており、文字列の先頭/末尾で指定した文字列を置換できるようにしたいと考えています。例えば:

string = "DadaLalaDada"

取得

string = "DuduLalaDada"

文字列の先頭を検索して置換すると

search  = "Dada"
replace = "Dudu"

は発表された。

MySQLでこれを行うにはどうすればよいですか? REPLACEを使用して文字列内のすべての出現箇所をヒットしますが、これを最初/最後にのみ実行するにはどうすればよいですか?

4

1 に答える 1

2

関連する値をクエリに複数回表示させたい場合は、次のように機能します。

select tab.val, 
concat(replace(substring(tab.val, 1, char_length('Dada')), 'Dada', 'Dudu'),
    substring(tab.val, char_length('Dada') + 1)) as replace_beginning,
concat(substring(tab.val, 1, char_length(tab.val) - char_length('Dada')),
    replace(substring(tab.val, -char_length('Dada')), 'Dada', 'Dudu')) as replace_end
from ( select "DadaLalaDada" as val union select "BlahDadaBlah" ) as tab

結果:

+--------------+-------------------+--------------+
| val          | replace_beginning | replace_end  |
+--------------+-------------------+--------------+
| DadaLalaDada | DuduLalaDada      | DadaLalaDudu |
| BlahDadaBlah | BlahDadaBlah      | BlahDadaBlah |
+--------------+-------------------+--------------+
于 2012-07-03T19:41:01.027 に答える