我目前正在使用此查询
UPDATE `table_name`
SET `field_name` = replace(same_field_name, 'unwanted_text', 'wanted_text')
我有一个数字字段:2,3,4,5,6,7,10,18,22,23,25,26,29,32,34,35,37,39& 40。
我遇到的问题是,如果我使用UPDATE `Registration`
SET `name` = replace(`name`, '2', 'jane')
,它会像我想要的那样用jane替换2的值,但它也会改变22到2jane的字段,并且相同32到3分。
如何制作它以便它只替换我在查询中输入的确切值(字符串),而不是包含该数字的任何字段?
答案 0 :(得分:0)
添加WHERE
子句
update registration set name = 'jane' where name = '2';
答案 1 :(得分:0)
一种方法是
mysql> select replace('32',right('32',1),'jane');
+------------------------------------+
| replace('32',right('32',1),'jane') |
+------------------------------------+
| 3jane |
+------------------------------------+
1 row in set (0.00 sec)
mysql> select replace('2',right('2',1),'jane');
+----------------------------------+
| replace('2',right('2',1),'jane') |
+----------------------------------+
| jane |
+----------------------------------+
1 row in set (0.00 sec)
因此,您的案例中的查询可以是
UPDATE table_name
SET field_name = replace(same_field_name, right(same_field_name,1), 'jane')