我得到了一组要在 IN 语句 (sql) 中使用的 ID。然而,这只有在正确写入时才能完成,例如:IN ('12', '13', '14')
如何将一组 ID 更改为该格式?这意味着在每个数字周围添加引号,并在每个数字后用引号括起一个逗号,数组中的最后一个除外。
我的代码:
$parent = "SELECT * FROM `web_categories` WHERE `parent_id` = 13 AND published = 1";
$parentcon = $conn->query($parent);
$parentcr = array();
while ($parentcr[] = $parentcon->fetch_array());
foreach($parentcr as $parentid){
if($parentid['id'] != ''){
$parentoverzicht .= "".$parentid['id']."";
}
}
我以后想这样使用它:
$project = "SELECT * FROM `web_content` WHERE `catid` IN ('".$parentoverzicht."') AND state = 1";
最佳答案
将此作为单个查询执行! SQL 引擎针对表的处理进行了各种优化,在代码中进行循环通常成本更高。
对于您的目的来说,显而易见的查询是:
SELECT wc.*
FROM web_content wc
WHERE wc.catid IN (SELECT cat.id
FROM web_categories cat
WHERE cat.parent_id = 13 AND cat.published = 1
) AND
wc.state = 1;
关于php - 用逗号和引号分隔 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39327712/