[英]Elasticsearch: Multiple small queries vs one bigger query - efficiency?
[英]multiple sql queries into one small and better query
我在我的php頁面中使用這些查詢,我認為有一種更好的方法可以做同樣的事情。
$cms1 = getRow("select * from cms where cmsID=1");
$cms2 = getRow("select * from cms where cmsID=2");
$cms3 = getRow("select * from cms where cmsID=3");
$cms4 = getRow("select * from cms where cmsID=4");
$cms5 = getRow("select * from cms where cmsID=5");
我正在從這些查詢中打印數據
<?=$cms['content']?>
<?=$cms2['content']?>
<?=$cms3['content']?> ....
是否有更好的方法來執行此操作或在單個查詢中獲取所有這些數據? 我想我可以通過在查詢中使用AS
鍵來獲得結果,但我不知道如何。
function getRow($query)
{
$rs = mysql_query($query) or die(mysql_error());
$result = array();
if(mysql_num_rows($rs))
{
$row = mysql_fetch_assoc($rs);
return $row;
}
}
使用mysql IN
select * from cms where cmsID in (1,2,3,4,5)
您可以使用IN子句替換許多OR條件
$sql = "select * from cms where cmsID in (1,2,3,4,5)";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo $row['cmsID'].' '.$row['content'];//output like :- 1 content
}
這也可以通過使用
之間
在MySQL中
SELECT * FROM cms WHERE cmsID BETWEEN 1 AND 5;
有關between子句的更多信息,您可以訪問此鏈接
$arrData = array();
$result = mysql_query($query) or die(mysql_error());
while($row = $result->fetch_array()) {
array_push($arrData,$row);
}
print_r($arrData);
首先改變你的功能
function getRow($query)
{
$rs = mysql_query($query) or die(mysql_error());
$result = array();
if(mysql_num_rows($rs))
{
while($row = mysql_fetch_assoc($rs))
{
$record[$row['cmsID']] = $row;
}
return $record;
}
}
然后更改您的查詢
$output = getRow(select * from cms where cmsID in (1,2,3,4,5));
然后回顯您的輸出。
print_r($output);
for($ i = 1; $ i <= 5; $ i ++){$ cms1 = getRow(“從cms中選擇*,其中cmsID ='”。$ i。“'”);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.