【问题标题】:How to use more than one WHERE expression in a SELECT clause? [closed]如何在 SELECT 子句中使用多个 WHERE 表达式? [关闭]
【发布时间】:2012-02-14 03:56:16
【问题描述】:

我有以下代码:

$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

任何帮助将不胜感激

【问题讨论】:

标签: php mysql forms loops


【解决方案1】:

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

$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 个,那么if ($row = mysql_fetch_array($result)) { echo $row['name']; } 将起作用。
【解决方案2】:

您应该更改您的 SQL 语句并附加

AND id = '$id'

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

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

【讨论】:

    【解决方案3】:

    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'"
    

    【讨论】:

      【解决方案4】:

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

      照迈克尔和鲍罗丁说的做!

      【讨论】:

        猜你喜欢
        • 2014-05-19
        • 1970-01-01
        • 2015-02-23
        • 2010-12-17
        • 2019-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多