我有一個包含很多行(大約1,500)的表格。在city_name列中,一些單元格具有城市名稱並以(CD)結尾。我希望帶有(CD)的單元在沒有(CD)的情況下更新。這是我的表的預覽:如果單元格中存在字符串,則更新單元格內容MySQL
+---------+-----------------------+---------+
| city_id | city_name | id_dept |
+---------+-----------------------+---------+
| 1 | El Encanto (CD) | 1 |
| 2 | La Chorrera (CD) | 1 |
| 3 | La Pedrera (CD) | 1 |
| 4 | La Victoria (CD) | 1 |
| 5 | Leticia | 1 |
| 6 | Miriti Parana (CD) | 1 |
| 7 | Puerto Alegria (CD) | 1 |
| 8 | Puerto Arica (CD) | 1 |
| 9 | Puerto Nariño | 1 |
| 10 | Puerto Santander (CD) | 1 |
+---------+-----------------------+---------+
10 rows in set (0.00 sec)
而這正是我想有:
+---------+-----------------------+---------+
| city_id | city_name | id_dept |
+---------+-----------------------+---------+
| 1 | El Encanto | 1 |
| 2 | La Chorrera | 1 |
| 3 | La Pedrera | 1 |
| 4 | La Victoria | 1 |
| 5 | Leticia | 1 |
| 6 | Miriti Parana | 1 |
| 7 | Puerto Alegria | 1 |
| 8 | Puerto Arica | 1 |
| 9 | Puerto Nariño | 1 |
| 10 | Puerto Santander | 1 |
+---------+-----------------------+---------+
10 rows in set (0.00 sec)
嗯,我明白我可以使用選擇所有(CD)的行:
SELECT * FROM city WHERE city_name LIKE ("%(CD)%")
但我怎麼刪除(CD):
UPDATE city SET city_name = "" WHERE city_name LIKE("%(CD)%")
非常感謝。我也想知道如果我想刪除沒有在括號內的確切字符串的單元格。如:(CD)或(XXX)和(YYY)和(ZZZZZ)是否有可能? – Tales
您可以將Regex用作用戶定義函數(UDF)...但是如果您想要一次性解決方案:使用命令將數據庫導出爲SQL文件 - mysqldump -u用戶-p數據庫表> dump.sql或導出在Phpmyadmin中運行,然後使用你最喜歡的文本編輯器進行搜索和替換,然後將SQL導入數據庫。 – outellou