我正在尝试更新我的表http://i.imgur.com/XTlAv.png
中的row 3(id=8)
使用以下查询:
UPDATE player_ban
SET until = Now(),
unbanned_by = "MrSnare",
unbanned_reason = "test",
unbanned_date = Now()
WHERE name = "MCYasman"
& unbanned_by = NULL
& until > NOW();
查询正在运行,但没有更新行。
出了什么问题?
我正在使用phpMyAdmin。
答案 0 :(得分:8)
我会更改您的查询以使用AND
而不是&
和unbanned_by IS NULL
。所以查询将是:
UPDATE player_ban
SET until = Now(),
unbanned_by = "MrSnare",
unbanned_reason = "test",
unbanned_date = Now()
WHERE name = "MCYasman"
AND unbanned_by IS NULL
AND until > now();
值永远不会是= null
,您必须使用IS NULL
。
答案 1 :(得分:3)
请勿使用&
,而是使用AND
WHERE name = "MCYasman" AND unbanned_by IS NULL AND until > now();
答案 2 :(得分:0)
您需要更改unbanned_by检查以使用"为空"而不是" = NULL"。像这样。
UPDATE player_ban SET until = Now(), unbanned_by = "MrSnare", unbanned_reason = "test", unbanned_date = Now() WHERE name = "MCYasman" & unbanned_by is NULL & until > now();
在SQL中,NULL不等于它自己。
> select null = null, null is null, null is not null;
+-------------+--------------+------------------+
| null = null | null is null | null is not null |
+-------------+--------------+------------------+
| NULL | 1 | 0 |
+-------------+--------------+------------------+
1 row in set (0.00 sec)