-1

我在这里问了一个类似的问题,但我意识到这个例子不能满足我的需要。这是我的新问题:

我正在尝试number从 mysqli 查询中设置一个变量。并在下一个查询中使用该变量。我尝试了以下查询,但徒劳无功。什么是正确的方法?

mysqli_multi_query($mysqli, "COUNT(fruits) FROM eatables as num SET @number= num; UPDATE fruits SET fruits = @number") or die('</br>mySqli Error</br>');

这是示例 sql 数据库:

table eatables:

#fruits   #numbers
apple      null
apple      null
grapes     null
mango      null
pears      null
grapes     null

查询后应该是

#fruits   #numbers
apple      3
apple      3
grapes     2
mango      1
pears      1
grapes     2
4

2 回答 2

1

您的情况不需要多查询,
为更新做一个内部连接就可以了

update eatables
inner join (select fruits, count(*) as total from eatables group by fruits) as b
on eatables.fruits = b.fruits
set eatables.numbers = b.total
于 2012-07-27T17:55:20.447 回答
0

您应该显示更多代码上下文,尽管听起来您想要做的并不是 mysqli_multi_query 的使用方式。它旨在用于执行一组以字符串形式传递的不同查询,并使您能够独立处理每个结果集。它不适用于您在同一查询上循环 X 次更改 SQL 语句以响应前一条语句的执行。

于 2012-07-27T17:56:06.783 回答