| city |
| ---------------- |
| Chicago (IL IN) |
| New (NY) York |
| (ARZ) Phoenix |
有沒有辦法洗掉(IL IN), (NY), 和(ARZ)?
我已經嘗試了下面的代碼,但它不起作用。
UPDATE table
SET city = REPLACE(city, '(%)', '')
WHERE city LIKE '%(%)%'
uj5u.com熱心網友回復:
您可以使用regexp_replace:
update table set city = regexp_replace(city, '\\(\\w{2,}(\\s\\w{2,})*\\)', '')
uj5u.com熱心網友回復:
這可能有效,如果有的話,它還可以洗掉額外的空間
update table1
set city = regexp_replace(city, '\\([\\w\\s] \\)\\s*|\\s*\\([\\w\\s] \\)', '')
where city like '%(%)%'
uj5u.com熱心網友回復:
嘗試運行它,看看結果是什么:
SELECT city,
CONCAT(SUBSTRING(city,1,LOCATE('(',city)-1),SUBSTRING(city,LOCATE(')',city) 2)) AS trimmed_city
FROM mytable
WHERE city LIKE '%(%)%';
如果結果trimmed_city是你想要的,那么你可以像這樣更新它:
UPDATE table
SET city=CONCAT(SUBSTRING(city,1,LOCATE('(',city)-1),SUBSTRING(city,LOCATE(')',city) 2)
WHERE city LIKE '%(%)%';
這可能是舊的MySQL版本不支持REGEXP_REPLACE()像@ Ajax1234的答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344743.html
