作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我总是这样做
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
while($i = mysql_fetch_array($r){
/* iterate just one withem */
$j = $i['whatIwant'];
}
echo $j;
这通常是怎么做的? (我只是想避免不必要的循环)
最佳答案
除了正确答案之外,还有多种处理方法:
如果添加LIMIT 1
,结果集将只包含一行,while
循环将在一次迭代后终止:
$q = "select whatIwant FROM table where id = 'myId' LIMIT 1";
$r = mysql_query($q);
while($i = mysql_fetch_array($r)) {
$j = $i['whatIwant'];
}
echo $j;
如果你在没有循环的情况下调用mysql_fetch_array
,你会得到结果集的第一行:
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
$i = mysql_fetch_array($r);
$j = $i['whatIwant'];
echo $j;
如果在循环体中添加break
,循环将在一次迭代后终止。
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
while($i = mysql_fetch_array($r)) {
$j = $i['whatIwant'];
break;
}
echo $j;
您还可以组合这些方法(尽管在这种情况下使用 break
并不是很优雅)。
最好的方法是使用 LIMIT
并省略 while
循环,如 @zaf shows in his answer .这使得代码更清晰,避免了数据库中不必要的操作。
关于php - 如何从mysql查询中只获取一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9657807/
我是一名优秀的程序员,十分优秀!