如何在 MySQL 数据库的单元格中增加一个整数?我知道自动递增是没有用的,因为我不想添加新行,只是更新现有行。我目前正在使用它(用于澄清的 POST var,已在真实代码中验证):
$columnToUpdate = 'type'.$_POST['voteid'];
$query = "UPDATE myTable $columnToUpdate = $columnToUpdate+1 WHERE id=1;";
if(!mysql_query($query)) {
echo json_encode(array('success' => false, 'message' => 'Update failed: '.mysql_error()));
exit;
}
在数据库中我有 6 个字段,id、type1、type2、type3、type4、type5 和一个 id 设置为 1 的行。目的是接收一个数字 (1-5),并建立一个引用在更新字段之前转到正确的列。这导致 Update failed: 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的 '=type4+1 WHERE id=1' 附近使用的正确语法
,所以我猜它在递增之前没有正确获取字段值。
一旦这个工作正常,我还需要以相同的方式递减一个字段,除非它的值为 0。所以为了加分,我可以在一个查询中完成所有这些操作还是拆分它会更好起来?
最佳答案
我认为您在查询中遗漏了关键字“SET” - 尝试
$query = "UPDATE myTable SET $columnToUpdate = $columnToUpdate+1 WHERE id=1;";
编辑:
要执行“递减,除非它为零”你可以使用类似的东西:
UPDATE myTable SET $columnToUpdate =
CASE $columnToUpdate
WHEN 0 THEN 0
ELSE $columnToUpdate - 1
END CASE
WHERE id=1;`
关于php - 更新 MySQL 字段中的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6140485/