1

私はテーブルを持っています:

Names
id | name    | text
1  | Mr Paul | aaaa
2  | Mr Marc | bbb
3  | Mr John | ccc

SQLでプレフィックス「 Mr 」を削除するにはどうすればよいですか?

4

4 に答える 4

4

機能を使用できREPLACE()ます。

 SELECT REPLACE(name, 'Mr ', '' ) FROM Names;

テーブルを更新するには、次のようにします。

 UPDATE Names set name = REPLACE(name, 'Mr ', '' );

このタスクの最適化に関するコメントはほとんどありません:他の回答で述べたように、関数を使用してそれを達成できます-すべての行が次で始まるSUBSTRINGことがわかっている場合、このアプローチはより高速になる可能性があります-DBエンジンは文字列を探す必要がありません(時間がかかります)ただし、最初の 4 文字を任意にカットします。MrMr

コンボ ソリューション(最初にのみ一致しますが、代わりにMr高速を使用します):SUBSTRINGREPLACE

UPDATE Names SET name = SUBSTRING(name FROM 4) WHERE name LIKE 'Mr %';
于 2013-05-15T09:11:34.327 に答える
1

を使用できますがREPLACE、最初だけでなく、フィールドのどこにでもインスタンスが見つかることに注意してください。

例えば

select replace(x.Name, 'Mr ', '')
from
(select 'Mr Smith' as name
union select 'Mr Jones') as x;
于 2013-05-15T09:11:34.747 に答える
1

これがあなたの答えです。

MySQL REPLACE関数はタスクを実行します

UPDATE table
   SET name = REPLACE(name, 'Mr ', '') 
WHERE name LIKE 'Mr %'

Mrサフィックスで始まるすべての名前を更新します

于 2013-05-15T09:13:59.557 に答える
0
SELECT SUBSTRING(name FROM 4) AS newname;
于 2013-05-15T09:12:17.963 に答える