私はテーブルを持っています:
Names
id | name | text
1 | Mr Paul | aaaa
2 | Mr Marc | bbb
3 | Mr John | ccc
SQLでプレフィックス「 Mr 」を削除するにはどうすればよいですか?
機能を使用できREPLACE()
ます。
SELECT REPLACE(name, 'Mr ', '' ) FROM Names;
テーブルを更新するには、次のようにします。
UPDATE Names set name = REPLACE(name, 'Mr ', '' );
このタスクの最適化に関するコメントはほとんどありません:他の回答で述べたように、関数を使用してそれを達成できます-すべての行が次で始まるSUBSTRING
ことがわかっている場合、このアプローチはより高速になる可能性があります-DBエンジンは文字列を探す必要がありません(時間がかかります)ただし、最初の 4 文字を任意にカットします。Mr
Mr
コンボ ソリューション(最初にのみ一致しますが、代わりにMr
高速を使用します):SUBSTRING
REPLACE
UPDATE Names SET name = SUBSTRING(name FROM 4) WHERE name LIKE 'Mr %';
を使用できますがREPLACE
、最初だけでなく、フィールドのどこにでもインスタンスが見つかることに注意してください。
例えば
select replace(x.Name, 'Mr ', '')
from
(select 'Mr Smith' as name
union select 'Mr Jones') as x;
これがあなたの答えです。
MySQL REPLACE関数はタスクを実行します
UPDATE table
SET name = REPLACE(name, 'Mr ', '')
WHERE name LIKE 'Mr %'
Mr
サフィックスで始まるすべての名前を更新します
SELECT SUBSTRING(name FROM 4) AS newname;