0

只是想知道-如果我们需要在表中进行条件更新,那么这是最好的方法-

在更新之前直接进行更新或检查现有条目。

function doDirectUpdate()
{
   // UPDATE table WHERE condn
}

或者

function doCheckAndUpdate()
{
   // SELECT COUNT(id) AS exist FROM table WHERE condn
   if(id exists)
   {
      // UPDATE table WHERE condn
   }
   else
   {
      echo 'No matching entry';
   }
}
4

1 回答 1

1

一个人不应该同时执行 a SELECT,然后是一个 conditional UPDATE,只是为了显示匹配行的数量 - 或缺少匹配的行。您应该执行的唯一一次SELECT是如果您有其他逻辑声明如果有超过 X 个匹配行则不更新。

UPDATE返回已更新并因此匹配的行数。您应该获取返回值 from UPDATE,然后在没有匹配条目时发出警报。

function doUpdateAndAlertIfNotMatched()
{
   numberOfRowsUpdated = UPDATE table WHERE condn;
   if(numberOfRowsUpdated == 0)
   {
      echo 'No matching entry';
   }
}

参考:http ://dev.mysql.com/doc/refman/5.0/en/update.html#id844302

于 2012-10-11T23:35:49.147 回答