从MySQL结果集中检索单个行或单元格

时间:2011-11-24 18:21:13

标签: php mysql sql

好的,我很好地进行查询并输出整个结果集。我需要的是只选择一行结果集,以避免对该单行/单元格进行全新的查询。例如

$query = "SELECT * FROM books";
$query_result = mysql_query($query,$connection);
while($book = mysql_fetch_array($query_result){
 output... (have no problem outputting the whole result set) 
}

我只是想知道如何在不进行全新查询的情况下选择结果集的单行...或单个单元格。非常感谢!

5 个答案:

答案 0 :(得分:2)

如果您仍然选择所有行但在整个结果集旁边还需要一些特定的行,则可以将其保存在变量中

while(book = mysql_fetch_array($query_result){  
  if (some condition) {
    $var = $row['col'];
  }
} 
echo $var;

答案 1 :(得分:0)

简单的回答是'where'子句。

$查询=” 选择 * 从书本 WHERE books.title ='SQL for Dummies' “;

答案 2 :(得分:0)

如果您使用

,则会获得一行
SELECT * FROM books LIMIT 1

您可能希望添加ORDER BY以控制返回单行。例如:

SELECT * FROM books ORDER BY date_published DESC LIMIT 1

如果您不想要表中的所有列,只需将*替换为所需列的列表,例如:

SELECT author, title
FROM books 
ORDER BY date_published DESC 
LIMIT 1

答案 3 :(得分:0)

如果您的后续内容是检索完整集,但只处理一行,则只需跳过while - 循环。

$row = mysql_fetch_array ($query_result);

答案 4 :(得分:0)

您可以使用此查询获取单行:

SELECT * FROM books LIMIT 1

或者,

$query = "SELECT * FROM books";
$query_result = mysql_query($query,$connection);

$book=$query_result[0];

// $ book有第一行结果