我的数据库中有这个表,每次都需要加1。除非它是null我想把它设置为一个。我想过将默认值设为零,但我也需要零。
例如
-----------------------
id number
-----------------------
01 NULL
02 3
03 1
我不想运行2个查询。
QUERY1 : SELECT number and store it in variable
if($number == NULL) $number = 1
else
{
$number = $number++
}
QUERY2 : UPDATE number
有没有1个SQL查询可以为我做这个而不处理php中的数据?
感谢的
答案 0 :(得分:3)
UPDATE table SET number=IF(number IS NULL,1,number+1)
这应该可以解决问题。
答案 1 :(得分:0)
是的,您可以检测值是否为NULL
。这样做:
UPDATE mytable SET number = IF(ISNULL(number), 1, number+1)
这会将NULL
的任何数字设置为1,并将其他数字增加1。所以这个:
-----------------------
id number
-----------------------
01 NULL
02 3
03 1
将产生:
-----------------------
id number
-----------------------
01 1
02 4
03 2
这样,您就不必再通过PHP了。