具体地说,我需要从表tmp.label
中选择字段label
的分隔符<!--RWBL_1->
和<!--RWBL_2->
之间的部分,其中label
包含以便能够为使用
HTML
标记错误格式化的记录更新该字段。
结果类似于strip_tags
。显然,这仅是由于存在上述(或类似)分隔符才可能的。
这里有一个简单的解决方案,用于提取给定2个分隔符的子字符串。
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(label,
'<!-- rwbl_1 -->', -1),
'<!-- rwbl_2 -->', 1) AS cutout
FROM tmp.label
WHERE label LIKE '<span%'
ORDER BY 1
LIMIT 1;
更摘要:
SELECT
SUBSTRING_INDEX(
SUBSTRING_INDEX(string_field, # field name
'delimiter_1', -1), # take the right part of original
'<!-- delimiter_2 -->', 1) # take the left part of the resulting substring
AS cutout
FROM my_table
WHERE my_condition;
现在更新的工作方式如下:
UPDATE my_table
SET string_field = SUBSTRING_INDEX(
SUBSTRING_INDEX(string_field,
'delimiter_1', -1),
'<!-- delimiter_2 -->', 1)
WHERE my_condition;