Mysql查询返回多个列

Mysql查询返回多个列,mysql,sql,Mysql,Sql,我想从5个不同的列中选择并返回一个值。我想 SELECT "BestLoc" from Nutrients WHERE FoodId = '$FoodId' AND CompId = '0000'. And again where FoodId = '$FoodId' AND CompId = '0001', And again where FoodId = '$FoodId' AND CompId = '0003', And again where FoodId = '$FoodId' AND

我想从5个不同的列中选择并返回一个值。我想

SELECT "BestLoc" from Nutrients WHERE FoodId = '$FoodId' AND CompId = '0000'.
And again where FoodId = '$FoodId' AND CompId = '0001',
And again where FoodId = '$FoodId' AND CompId = '0003',
And again where FoodId = '$FoodId' AND CompId = '0008',
And again where FoodId = '$FoodId' AND CompId = '0130'.
BestLoc返回5次,其中FoodId与输入$FoodId匹配,CompId匹配的5次

这怎么可能做到简单呢?最好是返回结果

array(
  [0] => (BestLoc value 1),
  [1] => (BestLoc value 2) and so on..
这样解决:
如果我没弄错你的问题,你只是在子句中寻找一个

SELECT BestLoc from Nutrients
WHERE FoodId = '$FoodId' AND CompId IN ('0000', '0001', '0003', '0008', '0130')

我想你在找这个

SELECT BestLoc
 FROM Nutrients
 WHERE FoodId = "$FoodId"
 AND CompId IN ('0000','0001','0003','0008','0130')

听起来很简单,但当我使用这个$stmt=$mysqli->query(“从营养素中选择BestLoc,其中FoodId='$FoodId'和CompId IN('0000','0001','0003','0008','0130')$return=$stmt->fetch_assoc();我只得到一个结果。您不是在迭代结果,就是在表中只有一个匹配值。检查一下如何迭代结果,我想我不明白。我知道每个CompId中都有匹配的值。@Sims当然你可以通过这个查询得到所有结果。问题是您只调用了一次
fetch\u assoc
。您必须为resultset中的每一行调用它。@LorenzMeyer,那么您可以建议某种while循环,或者可以在查询中修复它吗?我只得到一个查询结果。很抱歉,我之前没有读过这个。虽然你已经解决了你的问题,我只是想给你一些额外的提示。首先,要小心将PHP变量自身注入sql查询。使用占位符
,然后使用
bindParam
,然后执行准备好的查询。接下来我想添加的是关于这些PHP变量的一些我自己的编码实践。除非该值是以前经过清理的
整数
,否则我从不注入,总是连接<代码>“…其中someNum=$num”…
vs
”。。。其中someInternal=“”.$other.”..
SELECT BestLoc
 FROM Nutrients
 WHERE FoodId = "$FoodId"
 AND CompId IN ('0000','0001','0003','0008','0130')