如何使用一个值从表中删除一行,其中表包含具有不同值的第二行?

crm*_*ham 2 mysql sql database

鉴于以下表格数据:

+------+---------+----------+----------+-------------+------------+-----------------+---------------------+
| id   | version | quantity | state    | orderLineId | locationId | stockMoveTaskId | created             |
+------+---------+----------+----------+-------------+------------+-----------------+---------------------+
| 3277 |       0 |        2 | created  |      169108 |       5692 |            NULL | 2017-09-07 14:55:41 |
| 3073 |       0 |        2 | unpacked |      169108 |       5692 |            NULL | 2017-09-07 09:40:35 |
+------+---------+----------+----------+-------------+------------+-----------------+---------------------+
Run Code Online (Sandbox Code Playgroud)

使用MySQL - 如果表中还包含一个给定订单行ID的状态为'unpacked'的行,我怎么能删除包含'created'状态的所有行?

Gor*_*off 7

你会用的delete...用join:

delete todelete
    from t todelete join
         t
         on t.orderLineId = todelete.orderLineId
    where todelete.state = 'created' and t.state = 'unpacked';
Run Code Online (Sandbox Code Playgroud)