【发布时间】:2016-03-23 21:48:59
【问题描述】:
我有三个表:utenti、giocate 和 giocatori。
我必须删除 giocatori 和 giocate 表中具有特定 ID 的行。
我通过这种方式获取 id:
SELECT
@ids:=giocate.id
FROM
giocate
JOIN
utenti ON utenti.id = giocate.id_account
WHERE
utenti.id = 642 AND DATE_FORMAT(giocate.time,
'%Y-%m-%d') = '2016-03-20';
这确实有效,实际上是一个
SELECT @ids;
给我
ids
-------
1225
4545
5454
6653
...
但是当我调用这个查询时:
DELETE giocate.*, giocatori.*
FROM
giocatori
INNER JOIN
giocate
WHERE
giocate.id_giocatore = giocatori.id AND giocate.id IN (@ids)
我在每张表中只被删除了一行... 所以我必须对“count(@ids)”重复该查询...... 为什么会这样?
【问题讨论】:
-
IN的每个值都需要一个参数,例如,您不能使用单个参数并传入逗号分隔的列表。 -
为什么要使用变量来执行此操作?有原因吗?
-
@BerndBuffen 是的,因为如果我从中删除行,mysql 不允许我执行嵌套查询(giocate 表在删除和选择语句中)
-
@JoachimIsaksson 我正在传递一组值,我认为...不是吗?
-
@Francesco 如果我需要保存查询结果,我会使用临时表。
标签: jquery mysql sql sql-delete