我正在尝试清理存储在 MySQL 表中的记录。如果某行包含 %X%
,我需要删除该行及其紧下方的行,无论内容如何。例如。 (抱歉,如果该表侮辱了任何人的智慧):
| 1 | leave alone
| 2 | Contains %X% - Delete
| 3 | This row should also be deleted
| 4 | leave alone
| 5 | Contains %X% - Delete
| 6 | This row should also be deleted
| 7 | leave alone
有没有办法只使用几个查询来做到这一点?或者我是否必须先执行一个 SELECT 查询(使用 %x%
搜索参数)然后遍历这些结果并执行 DELETE...WHERE 为返回的每个索引 + 1
最佳答案
这应该可以工作,尽管它有点笨拙(可能需要检查 LIKE 参数,因为它使用模式匹配(参见评论)
从表
中删除。db
其中 idcol
在
( SELECT idcol
FROM db
.table
WHERE col
LIKE '%X%')
或 idcolIN
( SELECT
idcol+1 FROM
db.
tableWHERE
col` LIKE '%X%')
关于mysql - 删除 MySQL 中关系位置的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15457521/