【发布时间】:2014-09-02 09:49:10
【问题描述】:
我想使用 foreach 循环构建以下 SQL 查询字符串
SELECT 'name' AS `field`. GROUP_CONCAT(DISTINCT `name` ORDER BY `name`) AS `value`
FROM product
UNION ALL
SELECT 'category' AS `field`. GROUP_CONCAT(DISTINCT `category` ORDER BY `category`) AS `value`
FROM product
UNION ALL
SELECT 'year' AS `field`. GROUP_CONCAT(DISTINCT `year` ORDER BY `year`) AS `value`
FROM product
棘手的部分是下面的循环会在year 的最后一个 SELECT 语句中导致不必要的“UNION ALL”。
$selects = array("name"=>"Name","category"=>"Category","year"=>"Year");
$sql="";
foreach($selects as $select => $title)
{
$sql .= "SELECT '".$select."' AS `field` , GROUP_CONCAT( DISTINCT `".$select."`ORDER BY `".$select."` SEPARATOR '|' ) AS `value` FROM `product` UNION ALL";
}
谁能告诉我如何从数组中的最后一个元素(在本例中为年份)中删除最后一个 UNION ALL?
【问题讨论】:
标签: php mysql sql loops foreach