mysql - 将选择转换为数组以进行 DELETE FROM

标签 mysql sql where-clause

我有一个相当复杂的选择,它返回一个 id 数组。我现在想使用这个 id 数组

DELETE FROM cart_items WHERE id in (

    SELECT id AS the_count 
    FROM cart_items 
    GROUP BY session_code 
    HAVING COUNT(session_code) > 100

);

我想做的是使用内部选择(有效)作为 IN 删除数组...

这段代码抛出错误:

“您无法在 FROM 子句中指定要更新的目标表‘cart_items’”

最佳答案

尝试使用子选择并提供新别名

DELETE FROM cart_items WHERE id in (
SELECT cart_items_todelete.id FROM (
    SELECT id  
    FROM cart_items 
    GROUP BY session_code 
    HAVING COUNT(session_code) > 100 
) cart_items_todelete  

);

关于mysql - 将选择转换为数组以进行 DELETE FROM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942921/

相关文章:

c# - SQL中如何处理时间存储

MySQL 更新,设置在哪里不起作用?

mysql从行中选择多行相等

indexing - Cassandra - 具有非主键缺点的 WHERE 子句

sql - 为什么 TOP 或 SET ROWCOUNT 使我的查询如此缓慢?

mysql - 与 SQL 行作斗争

mysql - 将 MySQL 十进制转换为可接受的格式以便能够对其进行序列化

mysql - 使用 like 语句连接三个表

java - 根本原因 java.lang.ClassNotFoundException : com. mysql.jdbc.Driver

java - 如何使用其 id 将另一个实体嵌入到 Hibernate 实体中?