繁体   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