是否可以从数据库中删除非静态的某些“文本”?
对于静态文本,我只需将“静态文本”替换为“”
其实我只需要一个删除“static text1 * static text2”的命令
所以从text1到text2的一切。
Text1和text2是静态的,但是更改之间的所有内容。
感谢您的帮助
答案 0 :(得分:0)
假设您要求基于查找“静态文本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';
答案 1 :(得分:0)
如果我理解正确,您希望UPDATE
表格中的文字值删除text1
和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
文本本身),然后从{{获取第二个子字符串1}} 之后(及包括)field
文字的所有内容的列。
如果您想“更改”这两个值之间的文字,例如说您有text2
并且希望它变为text1 some-value text2
,则可以使用上述查询并将其放入中间的新文字:
text1 new-thing text2