如何从MySQL数据库中删除变量?

时间:2012-12-14 15:37:17

标签: mysql delete-row

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

感谢您的帮助

2 个答案:

答案 0 :(得分: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';

答案 1 :(得分:0)

如果我理解正确,您希望UPDATE表格中的文字值删除text1text2之间的任何文字,但保留实际的行。

如果是这种情况,您可以使用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