Php 根据其他字段是否有值更新不同字段

Php 根据其他字段是否有值更新不同字段,php,mysql,Php,Mysql,下面的查询工作正常。我希望它能做到以下几点: 仅当flag1为空时更新flag1='$uflag' 仅当flag1中有值且flag2为空时,才更新flag2='$uflag' 仅当flag1和flag2中有值且flag3为空时,才更新flag3='$uflag' 我怎么能这样做 UPDATE submission SET votes_up = $votes_up, flag1 = '$uflag' WHERE submissionid = $id 你可以 UPDATE submissio

下面的查询工作正常。我希望它能做到以下几点:

  • 仅当flag1为空时更新
    flag1='$uflag'
  • 仅当flag1中有值且flag2为空时,才更新flag2='$uflag'
  • 仅当flag1和flag2中有值且flag3为空时,才更新flag3='$uflag'
我怎么能这样做

UPDATE submission SET votes_up = $votes_up, flag1 = '$uflag'  WHERE submissionid = $id
你可以

UPDATE submission
SET votes_up = $votes_up,
    flag1 = '$uflag',
    flag2 = IF(flag1 != '' AND flag2 = '','$uflag',flag2)
WHERE submissionid = $id

i、 当不满足条件时,将flag2“更新”为其以前的值。

如果您想使查询保持简单,可以在SQL执行之前使用条件确定在PHP中使用哪种SQL。

记住引号和转义。;)