在MySQL中仅使用会话变量仅对字符的首次出现执行搜索/替换

要仅对首次出现的位置执行搜索/替换,请使用CONCAT和REPLACE()方法。

查询如下以设置用户定义的会话变量-

mysql> set @Sentence='Thks ks is a my string';

在此,k将仅被i替换一次。查询如下。我们还使用了INSTR()-

mysql> select @Sentence as NewString ,CONCAT(REPLACE(LEFT(@Sentence,
INSTR(@Sentence, 'k')), 'k', 'i'),
   -> SUBSTRING(@Sentence, INSTR(@Sentence, 'k') + 1)) as ChangeOnlyOneTime;

以下是仅显示首次出现的字符被替换的输出-

+------------------------+------------------------+
| NewString              | ChangeOnlyOneTime      |
+------------------------+------------------------+
| Thks ks is a my string | This ks is a my string |
+------------------------+------------------------+
1 row in set (0.00 sec)