SQL更新WHERE xx和最近的记录

jrm*_*jrm 8 mysql sql

我需要做一些看似非常简单的事情:

$bdd->query('UPDATE mytable SET aaa = \''.$aaa.'\', bbb = \''.$bbb.'\' WHERE name = \''.$name.'\'');
Run Code Online (Sandbox Code Playgroud)

我的问题:我有多个匹配此"WHERE"的记录,我想只更新最新的记录(我有一个日期和一个id,可用于定义哪个记录是最新的)

如何更改我的WHERE以添加" AND id = the_highest_id_of_this_query "之类的内容?

jue*_*n d 22

你只能limitupdate最近的记录

UPDATE your_table
SET some_column = 1
order by date_time_column desc
limit 1
Run Code Online (Sandbox Code Playgroud)

其中date_time_column可以是任何指示记录顺序的列.它也可以是自动增量ID.

  • 这对我不起作用。如果将Order by删除似乎让它混乱了,只会让我更新 (2认同)