[英]extracting rows from two tables in php and sql
我有兩個表properties
和buildings
。 我想根據條件從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.