是否可以从数据库中删除某些非静态的“文本”?
对于静态文本,我只是将“静态文本”替换为“”。
实际上我只需要一个删除“static text1 * static text2”的命令,
所以从text1到text2的所有内容。
Text1 和 text2 是静态的,但是之间的一切都在变化。
感谢帮助
是否可以从数据库中删除某些非静态的“文本”?
对于静态文本,我只是将“静态文本”替换为“”。
实际上我只需要一个删除“static text1 * static text2”的命令,
所以从text1到text2的所有内容。
Text1 和 text2 是静态的,但是之间的一切都在变化。
感谢帮助
假设您要根据查找“静态文本1”的模式询问删除整行,然后是任何内容,然后是“静态文本2”,请尝试(替换myTable
并myRow
使用您的值):
SELECT * FROM `myTable` WHERE `myRow` LIKE 'static text1%static text2';
如果这返回要删除的行,则可以运行 delete 命令:
DELETE FROM `myTable` WHERE `myRow` LIKE 'static text1%static text2';
如果我理解正确,您希望UPDATE
表格中的文本值删除介于text1
and之间的任何文本text2
,但保持实际行不变。
如果是这种情况,您可以使用SUBSTRING()
和的组合LOCATE()
来执行UPDATE
:
UPDATE your_table SET
field =
CONCAT(
SUBSTRING(field, 1, LOCATE('text1', field) + 5),
SUBSTRING(field, LOCATE('text2', field))
)
WHERE
field LIKE '%text1%text2%'
这会将列的第一部分field
直到文本“text1”(包括text1
文本本身),然后从field
列中获取第二个子字符串,用于文本之后(包括)的所有text2
内容。
如果你想“改变”这两个值之间的文本,例如说你有text1 some-value text2
并且你希望它成为text1 new-thing text2
,你可以使用上面的查询并将新文本放在中间:
UPDATE your_table SET
field =
CONCAT(
SUBSTRING(field, 1, LOCATE('text1', field) + 5),
' new-thing ',
SUBSTRING(field, LOCATE('text2', field))
)
WHERE
field LIKE '%text1%text2%'