选择找到的第一条记录

时间:2014-05-02 07:55:15

标签: mysql sql sql-update

假设我有以下表结构

 ________________________
|      |         |       |         
|Col1  |  Col2   |  Col3 | 
|______|_________|_______|
|      |         |       |         
| 123  |   245   |  aaa  | 
|______|_________|_______|
|      |         |       |         
| 123  |  245    |  bbb  | 
|______|_________|_______|

我需要更新第一行而不是第二行,但我不想引用Col3。

如果我这样做

 UPDATE table SET col1 = '789' WHERE col2='245'

它会更新两行。如果要将WHERE子句保留在col2='245',我怎样才能将上述查询设置为仅更新它找到的FIRST记录?

1 个答案:

答案 0 :(得分:2)

如果您没有订购,则没有第一个行要更新,它只会“拉出一个可用的”。

如果您清楚伪随机,则会更新这两行中的一行,您可以将LIMIT与更新一起使用;

UPDATE mytable SET col1 = '789' WHERE col2='245' LIMIT 1;

An SQLfiddle to test with