簡體   English   中英

從php和sql中的兩個表中提取行

[英]extracting rows from two tables in php and sql

我有兩個表propertiesbuildings 我想根據條件從buildings表中提取行。

我將這些建築物ID放在一個變量中,如下所示:

$buildings = "1,2,3,4,5,6,7,8,9,10"

我試圖根據上面的列表訪問屬性。

SELECT * FROM properties WHERE BUILDING_ID IN ('{$buildings}')

但我沒有得到理想的結果。 如何獲得理想的結果? 這是正確的方法嗎?

刪除單引號(和可選的大括號)。

$query = "SELECT * FROM properties WHERE BUILDING_ID IN ($buildings)"

請注意, IN並不總是最有效的,因為它不能使用索引-如果可以使用BETWEEN ,則在大型數據集上可能會獲得更好的性能。 但是對於較小的數據集, IN很好。

您可以執行以下操作:

$buildings = "1,2,3,4,5,6,7,8,9,10";
$buildingIDs = explode(",", $buildings);

$buildingQueries = array();
foreach ($buildingIDs as $buildingID) {
  $buildingQueries[] = "BUILDING_ID = " . $buildingID;
}

$query = "SELECT * FROM properties WHERE " . implode(" OR ", $buildingQueries);

這樣您就可以利用索引,並允許使用變量ID。

警告:您應該研究mysqli或PDO,並遠離即將棄用的mysql庫

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM