2014-06-15 25 views
0

我使用此查詢當前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,39,32,34,35,37,39 & 40.

我遇到的問題是,如果我使用UPDATE `Registration` SET `name` = replace(`name`, '2', 'jane')它將jane的值替換爲2,就像我想要的,但它也會改變22到2jane的領域,32到3jane也是如此。

我該如何製作它,以便它只會替換我在查詢中輸入的確切值(字符串),而不是包含該數字的任何字段?

+0

這幾乎不是一個好主意違反關係數據庫的第一種常規形式,並在字段中存儲逗號分隔列表。 – VMai

+0

@VMai它可能是一個可能的值列表。 – shmosel

+0

爲了記錄,我相信'22'會被'janejane'取代。 – shmosel

回答

0

添加WHERE條款

update registration set name = 'jane' where name = '2'; 
+0

感謝您的幫助,您爲我節省了很多頭痛。 – user3554257

+0

@ user3554257,請接受答案。 – Fabricator

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