Php 加法有效,减法无效';T

Php 加法有效,减法无效';T,php,mysql,mysqli,Php,Mysql,Mysqli,我有以下疑问: $stmt = $cxn->prepare("UPDATE comments SET counter = counter + 1 WHERE ? LIKE concat(path, '%')"); $stmt->bind_param('s', $path); $stmt->execute(); 其中$path类似于1/2/3/ 这个查询会增加每个结果的计数器罚款,但是如果我将查询更改为减法(counter=counter-1),它实际上不会减法,而且我不知道为

我有以下疑问:

$stmt = $cxn->prepare("UPDATE comments SET counter = counter + 1 WHERE ? LIKE concat(path, '%')");
$stmt->bind_param('s', $path);
$stmt->execute();
其中
$path
类似于
1/2/3/

这个查询会增加每个结果的计数器罚款,但是如果我将查询更改为减法(
counter=counter-1
),它实际上不会减法,而且我不知道为什么。毕竟,我只是换了一个接线员


怎么了?

这样做,这是我使用的方法:

SET `counter` = (`counter` - 1)
还有另一种方法:

SET counter = (counter-1)
编辑:

您的
WHERE
子句应该更精确

例如:
WHERE column=column\u to\u change
而不仅仅是
WHERE?

以下是我的工作代码:

UPDATE `mytable` SET `fieldname` = (`fieldname` - 1) WHERE `some_id` = 1

这个问题的解决方案是,因为我对
计数器使用了无符号整数,如果计数器已经设置为0,查询将无法工作


因此,您必须检查计数器是否不等于0或对其进行签名。

尝试“计数器+-1”看看会发生什么。@barrycarter仍然没有解决此问题:/真正地这就是我使用自己的方法,而且很有效@Bagwell您可能需要使用更精确的方法,如
WHERE column=column\u to\u change
,这就是我的方法。而不是
在哪里?
另外,我真的不知道是谁或者为什么否决了这个,这是我的一个脚本中的“工作代码”。我发现了这个问题。这是因为我使用的是无符号整数,如果计数器已经在0,我尝试进行减法,它实际上就不起作用了。有趣的是,你应该这么说,我之前考虑过这个问题,但当时不在我的电脑前。我还考虑添加一个条件来检查计数器是否已经设置为零@Bagwell-很高兴看到您找到了解决方案。定义“不起作用”。你期望它做什么?