gpt4 book ai didi

mysql - 为什么反引号在 UPDATE 查询的 SET 部分不起作用(对于 MySQL)?

转载 作者:行者123 更新时间:2023-11-29 01:38:59 27 4
gpt4 key购买 nike

下面的SQL

UPDATE line_items SET `line_items.quantity` = 2 where line_items.id = 1234;

给我这个错误:

ERROR 1054 (42S22): Unknown column 'line_items.quantity' in 'field list'

但是,这些查询都按预期工作:

UPDATE line_items SET line_items.quantity = 2 where line_items.id = 1234;
UPDATE line_items SET `quantity` = 2 where line_items.id = 1234;
UPDATE line_items SET quantity = 2 where line_items.id = 1234;

为什么反引号在这种特定情况下不起作用?

我当前的 MySQL 版本是 Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu) 我上周安装的。我没有尝试过其他版本。

我问的原因是我有一个更复杂的 UPDATE+JOIN 查询,Ruby on Rails 正在生成它不起作用,因为 Rails 添加了反引号。我想找出谁的错:Rails、MySQL 还是我 :-)

最佳答案

不要在反引号中包含表名和列名之间的句点分隔符。当您这样做时,它会将整个内容视为一个列名。

你想要这个:

`line_items`.`quantity`

`line_items.quantity`

最终的查询应该是这样的:

 UPDATE line_items SET `line_items`.`quantity` = 2 where line_items.id = 1234;

关于mysql - 为什么反引号在 UPDATE 查询的 SET 部分不起作用(对于 MySQL)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170954/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com