如何在SELECT子句中使用多个WHERE表达式?

时间:2012-01-19 13:35:38

标签: php mysql forms loops

我有以下代码:

$query  = "SELECT * FROM jos_vm_product_details WHERE global_variant_id = '$global_variant_id'";
$result = mysql_query($query);


while($row = mysql_fetch_array($result)) {
$row['name'];
}

是否可以仅在匹配内容时选择$ row ['name']:

Select $row['name'] WHERE id = $id

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:4)

我不完全理解您的问题,但您可以在查询中将其限制为:

$query  = "SELECT * FROM jos_vm_product_details WHERE global_variant_id = '$global_variant_id' AND id = '$id'";
//-------------------------------------------------------------------------------------------^^^^^^^^^^^^^^^^
$result = mysql_query($query);

否则,如果您需要在fetch循环中限制它,请使用以下内容:

while($row = mysql_fetch_array($result)) {
  if ($row['id'] == $id) {
    echo $row['name'];
  }
}

但是在我的第一个例子中,在查询的WHERE子句中可以更好地处理这个问题。

答案 1 :(得分:1)

您应该更改SQL语句并附加

AND id = '$id'

或者,如果您愿意,可以在while循环中添加条件语句,以便在ID不匹配时跳到下一行(不推荐)

if ($row['id'] != $id) continue

答案 2 :(得分:0)

http://dev.mysql.com/doc/refman/5.5/en/select.html

$query  = "SELECT name FROM jos_vm_product_details WHERE global_variant_id = '$global_variant_id'"

答案 3 :(得分:0)

为了您的应用程序的健康:永远不要在您的应用程序层中“过滤”输出,您的数据库旨在以最快和最简单的方式完成所有这些工作。

做迈克尔和鲍罗丁所说的话!