如何使用WHERE IN子句从MSQL查询中获取变量

时间:2015-11-26 09:59:57

标签: mysql arrays

我有几个MySQL表,我在这里运行查询:

$sql = "
SELECT my_item 
  FROM t1
     , t2 
 WHERE t1.id='$id' 
   AND t2.spec IN (208, 606, 645) 
   AND t1.spec = t2.spec
";

注意我正在使用WHERE IN。

接下来,我运行一个查询并使用WHILE来尝试获取结果:

$retval = mysql_query($sql) or die('Query failed: ' . mysql_error());
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
$myitem = $row['my_item'];
echo "My item is $myitem<br />\n";
} 

根据SELECT语句中IN语句中的三个选项,打印三个结果,每个结果都有一个不同的$ myitem值。

如何在每个单独的变量中提取和存储这三个值中的每一个?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用join

SELECT my_item FROM t1 join t2 
on t1.spec=t2.spec
WHERE t1.id='$id' 
AND t2.spec IN (208, 606, 645)

或创建数组

while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
$myitem[] = $row['my_item'];
}

使用这个数组: -

foreach( $myitem as  $myitems){
echo "My item is $myitems<br />\n";
}

或使用索引

echo "My item is $myitems[0]";

答案 1 :(得分:0)

您可以将$row['my_item']存储在数组中。 请参阅PHP arrays