2013-06-05 36 views
0

這裏是我的問題,下面是我的表架構編寫一個查詢,其中屬性值相同attriute名

表:圖片

| 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,你可以看到我保持寬度高度而屬性下的屬性widthheight我保持數量上的尺寸。

當我運行此查詢

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

OR

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

這是什麼一樣的是,它選擇記錄的屬性width的值,並用它代替屬性「跨度」值。下面是此查詢所做的更改

表:圖片

| 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跨度值寬度

同樣的問題發生在我使用文本名稱高度。

怎麼辦?

回答

1

這是因爲你正在使用您的字符串反引號,以適用於領域,而你應該使用引號'

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

你能避免使用引號您ID列,因爲它應該是一個整數列,但你不能避免使用它們,其中列不是整數(如您的第一個例子)span = width

Backtick通常用於列名和表名,但只要您不使用任何

0

我沒有試過,但你不能只是做:UPDATE images SET span = images.width WHERE ID = 1

相關問題