【问题标题】:How to UPDATE first occurrence WHERE certain condition is met?如何在满足某些条件的情况下更新第一次出现?
【发布时间】:2021-08-19 05:55:01
【问题描述】:

以下语句有效,预计它会更新我理解的所有事件。我只想更新第一次出现。我尝试使用 ROW_NUMBER(),但似乎无法获得根据条件更新第一次出现的语句。

$sql = "UPDATE teams SET teamName = ?, userId = ? WHERE leagueId = ? AND userId = ?;";

【问题讨论】:

  • 我正在使用准备好的语句。我稍后在执行之前绑定参数。
  • 请标记您的 DBMS。这是特定于 DBMS 的问题
  • 您还需要向我们展示ORDER BY 逻辑,该逻辑确定“第一次”出现在此处。
  • 使用 phpmyadmin。表是团队,列是“teamId”、“teamName”、“userId”、“leagueId”。我多次尝试使用 ROW_NUMBER() $sql = "UPDATE teams SET teamName = ?, userId = ? FROM (SELECT * ROW_NUMBER() OVER(ORDER BY userId) WHERE leagueId = ? AND userId = ?) WHERE Rno=1;"; 之一
  • 嗨 Shane,你能提供你的表结构吗?

标签: php sql phpmyadmin


【解决方案1】:

您可以为此目的使用以下查询。

$sql = "UPDATE teams SET teamName = ?, userId = ? WHERE leagueId = ? AND userId = ? ORDER BY teamId ASC LIMIT 1;";

它会将结果限制为仅根据 teamId 列的升序排列的第一个。

【讨论】:

  • 感谢完美。感谢大家的帮助。
猜你喜欢
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 2017-07-29
  • 2021-11-25
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
相关资源
最近更新 更多