我有一个名为status的mysql表,列ID, status。
STATUS只能为1或2。
我想以最简单的方式更新STATUS列,因此,如果STATUS值为1,则将其更新为2,反之亦然。
通常我可以这样做:
$c=$mysqli->query('SELECT * FROM status WHERE id="1"' );
$kats=$c->fetch_assoc();
$status=$kats['status'];
if ($status == '1') {$newstatus = '2';} else {$newstatus = '1';}
$mysqli->query("UPDATE status SET status = '$newstatus' WHERE id=1" );
这将工作,但是否有一个更简单的方法,或者也许1行查询?因为值只是在一列中从1变为2或从2变为1。
如果只有两个值,则考虑使用布尔数据类型。如果你这样做,你可以在一个查询中完成,像这样:
UPDATE status SET STATUS = !STATUS WHERE ID = ?
此外,将status
同时作为表名和列名有点令人困惑。