MySQL用通配符替换查询无法运行

时间:2018-08-14 11:18:35

标签: mysql replace wildcard

表中有很多条目,它们以FOO开头,以BAA结尾

像这样:

FOO here anything 111 BAA
FOO here anything 222 BAA
FOO here anything 333 BAA
FOO here anything 444 BAA
FOO here anything 555 BAA

我要删除所有这些..包括FOOBAA

普通选择查询运行LIKE 'FOO%BAA',但不运行REPLACE。

关于为什么的任何线索?

1 个答案:

答案 0 :(得分:1)

此答案假设,无论何时出现这两个字符串,您都希望删除以FOO开头(包括BAR)的文本。它还假设FOOBAR每次只出现一次(如果它们出现)。一种方法是拼接不需要的文本:

UPDATE yourTable
SET col = CONCAT(SUBSTRING_INDEX(col, 'FOO', 1), SUBSTRING_INDEX(col, 'BAA', -1))
WHERE col LIKE '%FOO%BAA%';

下面的演示未显示更新,但至少表明拼接逻辑有效。

Demo