这是我的问题以下是我的表架构
表:图像
| 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
OR
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值当我使用文本名称高度时会发生同样的问题。
该怎么做?
答案 0 :(得分:1)
这是因为您在字符串上使用反引号来应用于字段,而您应该使用引号'
UPDATE `images` SET `span` = 'width' WHERE `ID` = 1
^here ^ you need quotes
您可以避免使用ID
列的引号,因为它应该是整数列,但是如果列不是整数,则无法避免使用它们(作为您的第一个示例) span = width
反引号通常用于列名和表名,但只要您不使用任何reserved keyword
答案 1 :(得分:0)
我还没试过,但你不能这样做:UPDATE images
SET span
= images.width WHERE ID
= 1