MariaDB:使用表别名删除行不起作用

oxcyiej7  于 2023-01-13  发布在  其他
关注(0)|答案(2)|浏览(146)

有这样的陈述:
从ek_库存值lw中删除,其中lw.id_库存值= 6
似乎在MariaDB中运行时出错。如果我删除“lw”-tablealias,它将正常工作:
从ek_库存值中删除,其中ID_库存值= 6

lrpiutwd

lrpiutwd1#

在MariaDB的文档中未提及任何内容,请参见DELETE,但在MySQL的文档中指出了以下内容,请参见13.2.2 DELETE Syntax

如果为表声明别名,则在引用该表时必须使用别名:
DELETE t1 FROM test AS t1, test2 WHERE ...
试试看:

DELETE `lw` FROM `ek_stockvalue` `lw`
WHERE `lw`.`id_stockvalue` = 6;

参见dbfiddle

vatpfxk5

vatpfxk52#

在delete语句中嵌套一个select语句(假设表中有一个名为'id'的标识列),然后可以在select语句中使用alias:

DELETE FROM ek_stockvalue WHERE id in (
    SELECT id FROM ek_stockvalue lw WHERE lw.id_stockvalue = 6
)

相关问题