2012-04-10 79 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