2012-04-10 185 views
17

我正在尋找一種方法從我的MySql數據庫中的字段末尾刪除一些字符。如何從MySql數據庫的字段末尾刪除字符

假設我有一個名爲'items'的表,並且有一個名爲'descriptions'的字段,其中一些描述最後有<br>'s。可能有一個案例,或者在該領域的末尾可能會有2-3個 br >。

我需要找到一種方法通過PHP/MySql來修剪這些<br>的。在我想保留的描述中可能有其他<br>,這只是最後我需要刪除的那些。

我知道我可以遍歷每個條目,最後檢查該標籤,如果存在,將其剝離,然後使用新值更新數據庫。但是這似乎是很長的一段路要走,我不知道如何最好地實現我所要做的。

+0

如果您在中間或開始時沒有中間狀態,您也可以使用刪除 – 2012-04-10 05:15:47

回答

28

我沒有MySQL實例來進行測試,但這樣的事情可能會做它:

UPDATE myTable 
    SET myCol = TRIM(TRAILING '<br>' FROM myCol); 

看看一些string functions的。

10

你可以在mysql中使用TRIM函數。

UPDATE items SET descriptions = TRIM(TRAILING "<br>" FROM descriptions) 

TRIM的用法是here

+0

我應該在我的問題中更清楚一點。無論有多少人,我想刪除的角色都是
。我沒有字面上試圖刪除「
」。 – 2012-04-10 03:39:51

+0

我雖然投了你的答案。 – 2012-04-10 03:41:04

+0

@SherwinFlight好的,我將編輯答案。 – yaronli 2012-04-10 03:41:58

2

使用SUBSTRING和LENGTH修剪該字段。類似於

UPDATE MyTable SET MyField=SUBSTRING(MyField,1,LENGTH(MyField)-4) 
WHERE MyField LIKE '%<br>' 
+0

...然後你會反覆運行查詢,直到沒有更多的條目匹配'LIKE'%br''。聰明! – octern 2012-04-10 03:35:18

+1

SUBSTRING的中間參數應該是一個,而不是零。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring – 2014-01-24 13:15:53

+0

這就是爲什麼我說「類似」:)。謝謝,編輯。 – SteveCav 2014-01-29 22:57:42