1

我知道列中每个值的结尾 - 假设它是“Potato”。

有没有办法从每一行中删除“土豆”?

我知道这CONCAT会将字符串添加到列中的值中,但是如果我知道列中的每个值的末尾,如何删除字符串?

例如

+-----------+
| MyValue   |
+-----------+
| FooPotato |
| BarPotato |
+-----------+

应该变成:

+---------+
| MyValue |
+---------+
| Foo     |
| Bar     |
+---------+
4

2 回答 2

12
UPDATE someTable SET someColumn = REPLACE(someColumn, 'Potato', '')
WHERE someColumn LIKE '%Potato'

查看演示

于 2013-06-24T19:04:41.950 回答
7

阅读:http ://dev.mysql.com/doc/refman/5.0/en/string-functions.html

您可以使用该LEFT函数来摆脱字符串的结尾。'Potato' 有 6 个字符,因此,此语句将列中所有条目的内容减少 6 个字符。

UPDATE table
SET column =
    LEFT(column, LENGTH(column)-6)
WHERE column LIKE '%Potato';

演示

于 2013-06-24T19:05:14.623 回答