我想创建这样的查询:
$get_products = "SELECT P.*, C.`category_name`, GROUP_CONCAT(`category_name` SEPARATOR ', ') AS `cat`
FROM `products` P
NATURAL JOIN
`categories` C
NATURAL JOIN
`product_to_categories`";
WHERE
FIND_IN_SET(`category_name`, :selected_categories)
AND `product_price` BETWEEN :price_min AND :price_max
GROUP BY `product_name`
ORDER BY 1 DESC ";
$db = getConnection();
$stmt = $db->prepare($get_products);
$stmt -> bindValue(selected_categories, $selected_categories);
$stmt -> bindValue(price_min, $price_min);
$stmt -> bindValue(price_max, $price_max);
问题是字符串$selected_categories在某些情况下是空的,当它为空时显然什么也找不到。
是否有任何我可以使用的参数(例如$selected_categories = '*';)并且它会导致 FIND_IN_SET 找到所有内容?或者我应该为$selected_categories为空的情况创建全新的查询?
牛魔王的故事
一只甜甜圈