2015-12-15 32 views
-1

又一個MySQL問題來自我。如何從MySQL列中刪除值

我有一個MySQL列稱爲一個查詢我跑了「IMG」

無意間,所有在「IMG」的價值觀是這樣的:

184 2015/10/Screen-Shot-2015-10-06-at-17.36.29.png 

我想之前刪除一切該空間,並保持文件路徑(2015/10/Screen-Shot-2015-10-06-at-17.36.29.png)。

該數字並不總是「184」,並進一步放入表中,它變成了四位數字。號碼後總是有空格。

我該怎麼做?

+1

看[mySQL字符串函數](http://dev.mysql.com/doc/refman/5.7/en/string-functions.html),並考慮'定位'第一個空間並保存所有內容。子串的字符串長度減去第一次出現的空格。 – xQbert

+2

[RIGHT(col,LENGTH(col) - LOCATE('',col))](http://sqlfiddle.com/#!9/dce08/2/0) – lad2025

+0

似乎@ lad2025做了所有的努力工作: P – xQbert

回答

1

這很容易。您的查詢會是這個樣子(前刪除所有內容,幷包括空格):

UPDATE "TABLE_NAME" SET `img` = SUBSTRING_INDEX(`img`, " ", -1); 

要查看預覽,這將是什麼樣子,你可以運行以下命令:

SELECT SUBSTRING_INDEX(`img`, " ", -1) FROM "TABLE_NAME"; 
0

你CA嘗試用其剩餘的字符串的更新這樣 (試前做表的副本)

update your_table 
set your_column = select substr(your_column, POSITION(' ' IN your_column)+1, 256); 

256是你想要的字符串考覈的最大lenght更換