MySql用值替换数字给我问题phpmyadmin

时间:2014-06-15 19:56:52

标签: mysql phpmyadmin

我目前正在使用此查询

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分。

如何制作它以便它只替换我在查询中输入的确切值(字符串),而不是包含该数字的任何字段?

2 个答案:

答案 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')