0

这是我的问题以下是我的表架构

表:图像

| id | title | width | height | span   | status |
| 1  | s1    | 900   | 310    | height | 1      |
| 2  | s2    | 300   | 250    | width  | 1      |
| 3  | s3    | 450   | 400    | width  | 1      |
| 4  | s4    | 650   | 560    | width  | 1      |

span如您所见,在列\属性下,我在属性下的属性中保持宽度高度width,或者height我保持尺寸的数量。

当我运行这个查询

UPDATE `images` SET `span` =  width  WHERE `ID` = 1

或者

UPDATE `images` SET `span` = `width` WHERE `ID` = 1

这样做是它选择width记录的属性值并用它替换属性'span'的值。以下是此查询所做的更改

表:图像

| id | title | width | height | span   | status |
| 1  | s1    | 900   | 310    | 900    | 1      |
| 2  | s2    | 300   | 250    | width  | 1      |
| 3  | s3    | 450   | 400    | width  | 1      |
| 4  | s4    | 650   | 560    | width  | 1      |

而我想做的就是用这个文本宽度替换记录1处的span值

当我使用文本名称高度时会发生同样的问题。

该怎么办?

4

2 回答 2

1

这是因为您在字符串上使用反引号来应用于字段,而您应该使用引号'

UPDATE `images` SET `span` = 'width' WHERE `ID` = 1
                             ^here ^ you need quotes

您可以避免为您的ID列使用引号,因为它应该是一个整数列,但您不能避免在列不是整数的情况下使用它们(作为您的第一个示例) span = width

反引号通常用于列名和表名,但可以避免使用,只要您不使用任何reserved keyword

于 2013-06-05T11:33:40.890 回答
0

我还没有尝试过,但你不能这样做:UPDATE imagesSET span= images.width WHERE ID= 1

于 2013-06-05T11:33:07.253 回答