php - 如果两列相等则 MySQL 查询删除行

标签 php mysql

如果两列的值相等,如何从 mysql 表中删除所有行

示例表

invoice_id| item_id | name  | invoiced_qty | received_qty
---------------------------------------------------------
|  1      |  1      | item1 |   3          |     2    
|  2      |  2      | item2 |   5          |     5   
|  3      |  1      | item3 |   4          |     3   
|  4      |  2      | item4 |   2          |     2   
|  5      |  1      | item5 |   5          |     5

删除表后需要保留

invoice_id| item_id | name  | invoiced_qty | received_qty
---------------------------------------------------------
|  1      |  1      | item1 |   3          |     2    
|  3      |  1      | item3 |   4          |     3   

我创建的选择查询是

SELECT * FROM table1 A 
INNER JOIN table1 B ON A.item_id = B.item_id 
AND A.invoice_id = B.invoice_id
AND A.invoiced_qty = B.received_qty

谢谢

最佳答案

为什么不只是 SQL Fiddle :

DELETE FROM table1 
WHERE invoiced_qty = received_qty

您的编辑不会改变任何内容。他是SQL Fiddle演示您的 SELECT 查询。根据您的示例数据,A.invoice_id 永远不会等于B.invoice_id。所以你不会得到任何结果。

关于php - 如果两列相等则 MySQL 查询删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24452693/

相关文章:

mysql - 为什么在这个 SQL 语句中使用 @variable 没有产生结果?

mysql - 使用 SphinxSE 手动设置随机排序种子?

mysql - 调用存储过程时 Integer IN 参数为空

php - MySQL - 在数据库复杂性中查找表

javascript - 使用 php 设置延迟通知

php - 删除带有复选框的表单不起作用

php - 具有一个或多个(多个)参数的搜索表单

php - 不同版本的 php 之间 DOMDocument 中的重音问题

php - 如何在 php 中创建一个简单的投票赞成/反对 php 脚本?

php - 将包含 case 语句的 MySql 查询转换为 codeigniter 事件记录查询