这是结果查询:
UPDATE admin
SET t_points = t_points + COALESCE(
SELECT points
FROM sites
WHERE url = '$url',
0
)
WHERE username = '$login_session'
每当您对 NULL 进行数学运算时,结果始终为 NULL,如果不是 NULL,COALESCE 返回第一个值,否则返回第二个值
合并
顺便说一句,在将变量传递给查询之前,请在它们上使用 mysql_real_escape_string :
$url = mysql_real_escape_string($url);
$login_session = mysql_real_escape_string($login_session);
但我建议你使用 MySQL PDO,你可以在这里找到一些文档PDO
为了提高性能,最好将 UPDATE 和 SELECT 查询分开(仅当 SELECT 查询对于每个更新查询都相同时才有效,就像在主题中一样)我们可以将 SELECT 查询的结果传递给一个变量并在 UPDATE 中使用这个变量:
mysql_query("SET @points = COALESCE(
SELECT points
FROM sites
WHERE url = '$url',
0
)");
mysql_query("UPDATE admin
SET t_points = t_points + @points
WHERE username = '$login_session'");