0

是否可以从数据库中删除某些非静态的“文本”?
对于静态文本,我只是将“静态文本”替换为“”。
实际上我只需要一个删除“static text1 * static text2”的命令,
所以从text1到text2的所有内容。
Text1 和 text2 是静态的,但是之间的一切都在变化。

感谢帮助

4

2 回答 2

0

假设您要根据查找“静态文本1”的模式询问删除整行,然后是任何内容,然后是“静态文本2”,请尝试(替换myTablemyRow使用您的值):

SELECT * FROM `myTable` WHERE `myRow` LIKE 'static text1%static text2';

如果这返回要删除的行,则可以运行 delete 命令:

DELETE FROM `myTable` WHERE `myRow` LIKE 'static text1%static text2';
于 2012-12-14T15:43:17.030 回答
0

如果我理解正确,您希望UPDATE表格中的文本值删除介于text1and之间的任何文本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%'
于 2012-12-14T15:45:50.633 回答