我有一个查询要根据设置的参数选择一个有限的结果:
$query = $this->db->query ("
SELECT
p.product_id,
p.quantity
FROM {$this->prefix}product p
LEFT JOIN {$this->prefix}product_to_category pc
ON (p.product_id = pc.product_id)
WHERE pc.category_id = '3'
AND p.status = '1'
ORDER BY p.quantity DESC
LIMIT 0, 4");
这将返回库存数量最多的 4 种产品,其中产品的 category_id
= 3。
我想让它使用一组类别 ID,而不是静态的。即:
$categories = array(2, 6, 22, 33, 34, 83, 220, 222, 886, 897);
这可能吗?
最佳答案
您可以将数组转换为字符串并在查询中使用它。请注意,以下假定 $categories 已经安全并且不会包含恶意输入。如果不是这种情况,您将需要清理输入。
$categoriesClause = implode(",",$categories);
$query = $this->db->query ("
SELECT
p.product_id,
p.quantity
FROM {$this->prefix}product p
LEFT JOIN {$this->prefix}product_to_category pc
ON (p.product_id = pc.product_id)
WHERE pc.category_id IN ($categoriesClause)
AND p.status = '1'
ORDER BY p.quantity DESC
LIMIT 0, 4");
关于php - 在 Mysql 查询中使用数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917235/