gpt4 book ai didi

MySQL (MariaDB 10.1) 使用 REGEX 查找并替换/删除字符串

转载 作者:行者123 更新时间:2023-11-29 10:48:24 28 4
gpt4 key购买 nike

我有一个产品注释栏,其中许多包含以下内容(以及其他信息):

<p><em><strong>Item dropped from ESP datafeed and pricing removed from site on 02-17-2017. May still be available.</strong></em></p>

2017 年 2 月 17 日是我更改的日期(但始终采用该格式)。我可以仅使用数据库查询来查找并删除这些字符串(保留列中的其余数据,如 MySQL REPLACE() 但使用正则表达式来匹配日期)还是需要在 PHP 中执行此操作?

最佳答案

WHERE notes LIKE '<p><em><strong>Item dropped from ESP datafeed and pricing removed from site on %. May still be available.</strong></em></p>'

请注意,我在字符串中添加了 %

我不明白“删除那些字符串”——您想用空字符串替换它们吗? NULL?删除 notes 列中包含该行的?还有别的事吗?我希望 WHERE 子句足以让您朝着正确的方向前进。

注意:REGEXP 是“过度杀伤”; LIKE 就足够了。

如果你想删除日期但保留字符串的其余部分,那么这样做不行吗?...

UPDATE tbl
SET notes = '<p><em><strong>Item dropped from ESP datafeed and pricing removed from site on xxxxxxxxxxx. May still be available.</strong></em></p>'
WHERE notes LIKE '<p><em><strong>Item dropped from ESP datafeed and pricing removed from site on %. May still be available.</strong></em></p>';

(或者您想作为占位符放置的任何内容。)

MariaDB-10.0.5 有这些:REGEXP_REPLACE()、REGEXP_INSTR() 和 REGEXP_SUBSTR();但我不认为它们对于您的情况是必要的。

关于MySQL (MariaDB 10.1) 使用 REGEX 查找并替换/删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44164188/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com