我目前正在学习 MySQL,并且开始学习变量,但是我在访问变量中保存的内容时遇到问题;我使用以下命令获取变量包含:
SELECT
@foods := `idFood`, `price`
from
`foods`;
这似乎工作正常,并且生成了一个表格,现在我想通过以下命令对表格动物进行排序:
Select
*
From
`Animals`
order by `Animals`.`Food consumption` * @foods.price
where @foods.idFood = `Animals`.`FoodType`
Animals.FoodType 保存着动物正在食用的食物的 ID。
运行此程序时,我在最后一部分使用变量时遇到错误,我已经使用它很长一段时间了,但没有任何运气。
最佳答案
您应该使用一个带有 JOIN 子句的查询。尝试这个查询 -
SELECT a.* FROM animals a
LEFT JOIN foods f
ON a.FoodType = f.idFood
ORDER BY a.`Food consumption` * f.price;
关于变量 - MySQL 中的变量是标量值,不能将数组设置为变量。
关于MySQL 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7173589/