假设我有以下表结构
________________________
| | | |
|Col1 | Col2 | Col3 |
|______|_________|_______|
| | | |
| 123 | 245 | aaa |
|______|_________|_______|
| | | |
| 123 | 245 | bbb |
|______|_________|_______|
我需要更新第一行而不是第二行,但我不想引用Col3。
如果我这样做
UPDATE table SET col1 = '789' WHERE col2='245'
它会更新两行。如果要将WHERE
子句保留在col2='245'
,我怎样才能将上述查询设置为仅更新它找到的FIRST记录?
答案 0 :(得分:2)
如果您没有订购,则没有第一个行要更新,它只会“拉出一个可用的”。
如果您清楚伪随机,则会更新这两行中的一行,您可以将LIMIT
与更新一起使用;
UPDATE mytable SET col1 = '789' WHERE col2='245' LIMIT 1;