我有一個MySQL數據庫,其中有大約20.000個條目,其中的文件名爲Name_Subname_XXXXX
。因爲這些文件是以這種方式命名的,所以向互聯網顯示的名稱在輸入數據庫時也會得到該名稱。刪除字符串中的所有字符
我想知道我怎麼能以簡單的方式從名稱中刪除_
並保持Name Subname XXXXX
?
我有一個MySQL數據庫,其中有大約20.000個條目,其中的文件名爲Name_Subname_XXXXX
。因爲這些文件是以這種方式命名的,所以向互聯網顯示的名稱在輸入數據庫時也會得到該名稱。刪除字符串中的所有字符
我想知道我怎麼能以簡單的方式從名稱中刪除_
並保持Name Subname XXXXX
?
您可以使用MySQL的REPLACE方法字符串:
UPDATE tbl SET filename = REPLACE(filename, '_', ' ');
這對所有人都適用嗎?它從X_X_X_X_到X_X不等。 – Rizzzler
@Rizzler是的,它會。 – wonderb0lt
使用replace()
SELECT REPLACE(col, '_', ' ') from table;
參考https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace
我猜你可能想要將名稱分成三列(而不是僅僅刪除名稱中的下劃線)。如果是這樣,請使用substring_index()
:
select substring_index(filename, '_', 1) as name,
substring_index(substring_index(filename, '_', 2), '_', -1) as subname,
substring_index(filename, '_', -1) as xxxxx
什麼是替換? –
$ newfilename = str_replace('_','',$ filename); –
可能的重複[如何使用mySQL replace()替換多個記錄中的字符串?](http://stackoverflow.com/questions/4271186/how-can-i-using-mysql-replace-to-replace-字符串在多個記錄) –