2015-06-17 33 views
0

我有一個MySQL數據庫,其中有大約20.000個條目,其中的文件名爲Name_Subname_XXXXX。因爲這些文件是以這種方式命名的,所以向互聯網顯示的名稱在輸入數據庫時​​也會得到該名稱。刪除字符串中的所有字符

我想知道我怎麼能以簡單的方式從名稱中刪除_並保持Name Subname XXXXX

+0

什麼是替換? –

+0

$ newfilename = str_replace('_','',$ filename); –

+1

可能的重複[如何使用mySQL replace()替換多個記錄中的字符串?](http://stackoverflow.com/questions/4271186/how-can-i-using-mysql-replace-to-replace-字符串在多個記錄) –

回答

0

您可以使用replace

select replace(col, '_', ' ') from tbl 
+0

這將工作的所有_?它從X_X_X_X_到X_X不等。 – Rizzzler

+0

@Rizzzler:是的,它會的。 – potashin

0

您可以使用MySQL的REPLACE方法字符串:

UPDATE tbl SET filename = REPLACE(filename, '_', ' '); 
+0

這對所有人都適用嗎?它從X_X_X_X_到X_X不等。 – Rizzzler

+0

@Rizzler是的,它會。 – wonderb0lt

0

我猜你可能想要將名稱分成三列(而不是僅僅刪除名稱中的下劃線)。如果是這樣,請使用substring_index()

select substring_index(filename, '_', 1) as name, 
     substring_index(substring_index(filename, '_', 2), '_', -1) as subname, 
     substring_index(filename, '_', -1) as xxxxx 
相關問題