Php 案例MySQL关闭后与其他列一起打开
我有两个专栏:Php 案例MySQL关闭后与其他列一起打开,php,mysql,sql,database,Php,Mysql,Sql,Database,我有两个专栏: reaction AND status 列状态的默认文本: off UPDATE profile_post SET status = CASE WHEN 'off' THEN 'on', reaction +1 WHEN 'on' THEN 'off', reaction -1 END W
reaction AND status
列状态的默认文本:
off
UPDATE profile_post SET
status = CASE
WHEN 'off' THEN 'on', reaction +1
WHEN 'on' THEN 'off', reaction -1
END
WHERE post = '$postid1'
如何:
off
UPDATE profile_post SET
status = CASE
WHEN 'off' THEN 'on', reaction +1
WHEN 'on' THEN 'off', reaction -1
END
WHERE post = '$postid1'
我一直在尝试使用WHEN CASE,但不知怎么的,它总是给我带来错误。您正在更新多个值,因此您可以尝试以下方法:
UPDATE profile_post SET
reaction = reaction + 1,
status = CASE
WHEN status = 'off' THEN 'on'
WHEN status = 'on' THEN 'off'
ELSE 'on'
END
WHERE post = '$postid1'
编辑
为了向“反应”列添加条件(如答案中的注释),请尝试以下操作:
UPDATE profile_post SET
reaction = CASE
WHEN status = 'off' THEN reaction + 1
ELSE reaction - 1
END,
status = CASE
WHEN status = 'on' THEN 'off'
ELSE 'on'
END
WHERE post = '$postid1'
您正在更新多个值,因此可以尝试以下操作:
UPDATE profile_post SET
reaction = reaction + 1,
status = CASE
WHEN status = 'off' THEN 'on'
WHEN status = 'on' THEN 'off'
ELSE 'on'
END
WHERE post = '$postid1'
编辑
为了向“反应”列添加条件(如答案中的注释),请尝试以下操作:
UPDATE profile_post SET
reaction = CASE
WHEN status = 'off' THEN reaction + 1
ELSE reaction - 1
END,
status = CASE
WHEN status = 'on' THEN 'off'
ELSE 'on'
END
WHERE post = '$postid1'
你试过什么代码?请显示您的尝试。显示完整
show CREATE TABLE profile\u post代码>输出。打开
和关闭
是否是状态
的唯一可能值?您尝试了什么代码?请显示您的尝试。显示完整show CREATE TABLE profile\u post代码>输出。打开
和关闭
是否是状态
的唯一可能值?错误。想象一下,最初status='unknown'
…如果在代码中放入一个ELSE,将status设置为on,那么注释中的SQL可能有明显的拼写错误。编辑您的答案并将修改后的sql放入其中。通过跨多行设置格式,您将发现打字错误。(例如其他反应-1状态=
实际上需要其他反应-1结束,状态=
)不错,@MatBailie。我会更新答案的太好了!感谢@MatBailie澄清了错误代码上的错误。想象一下,最初status='unknown'
…如果在代码中放入一个ELSE,将status设置为on,那么注释中的SQL可能有明显的拼写错误。编辑您的答案并将修改后的sql放入其中。通过跨多行设置格式,您将发现打字错误。(例如其他反应-1状态=
实际上需要其他反应-1结束,状态=
)不错,@MatBailie。我会更新答案的太好了!感谢@MatBailie澄清了代码中的错误