mysql - SQL删除列中的每个唯一值?

标签 mysql sql foreach

我有一个连接两个表(消息和元数据)的 SQL 查询,然后根据其中一列 sender_id 的值从消息中删除。在下面的示例中,我使用了一个用户的 ID,22。如何使此查询循环遍历 sender_id 的每个唯一值?

DELETE `messages`
FROM
  `messages` LEFT JOIN `meta` ON (`meta`.message_id = `messages`.id) 
WHERE 
  `meta`.message_id IS NULL
AND 
  `messages`.date_sent < DATE_ADD(NOW(), INTERVAL -1 MONTH) 
AND 
  `messages`.sender_id = 22 // How can I replace '22' so that the query searches for 
                               each unique value of sender_id?

最佳答案

你不能把条件去掉吗?

DELETE m
FROM messages LEFT JOIN
     meta
     ON meta.message_id = m.id
WHERE m.message_id IS NULL AND 
      m.date_sent < DATE_ADD(NOW(), INTERVAL -1 MONTH) ;

这将删除所有符合条件的消息。

关于mysql - SQL删除列中的每个唯一值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43562408/

相关文章:

php - 将 foreach 语句转换为 PHP 中的 for 循环

mysql - 需要一个将postgres数据库转换为mysql的工具

php - 数据库帮助 PHP 初学者

mysql - SQL - 如何获得每个部门的平均员工工资?

javascript - if 条件在数组迭代中始终返回 true

node.js - Node.js 中 ForEach 内的异步请求

php - 超链接行获取另一个页面中的行数据,PHP?

php - 使用 CI 事件记录仅在 DATE 数据类型列中选择月份部分?

php - Importbuddy 内部 500 服务器错误步骤 3

sql - SQL Server 中是否有等同于 sysdate-1/24 的项?