删除SQLite中包含另一个字段的字符串的一部分

时间:2016-08-07 19:38:52

标签: sqlite replace

我需要删除与另一列对应的一列中的一部分字符串。 我知道我可以使用REPLACE函数,但不知道如何使用它。

所以,在我的情况下,我想删除" name"的第一部分。与酿酒厂列相同的列。

示例:

Name: Family Wines Vintage Special
Winery: Family Wines

我想获得:

Name: Vintage Special
Winery: Family Wines

可能出现的问题:

  • 如果Name和Winery相同,则该功能无需执行任何操作。
  • 删除
  • 后,不要将空格保留在名称字段的开头
  • 如果可能的话,清除名称字符串,如果在删除后以逗号(')或分号(;)开头,或者使用另一个查询

类似的东西:

UPDATE usr_wines SET name=REPLACE(name, winery, '') WHERE name LIKE '%' || winery;

谢谢,

1 个答案:

答案 0 :(得分:0)

要从文本值的开头删除字符,请使用substr() function

UPDATE usr_wines
SET Name = substr(Name, 2)
WHERE Name LIKE ',%';

使用动态字符串也可以这样做:

UPDATE usr_wines
SET Name = substr(Name, length(Winery) + 1)
WHERE Name LIKE Winery || '%'
  AND Name != Winery;