如何在MySQL中加入相同的数据库名称?
问题描述:
基本上我做while
两次拿到主组&组值。例如如何在MySQL中加入相同的数据库名称?
$group_query = $db->query("
SELECT opt_id, opt_type
FROM ads_options
WHERE opt_id = '" . intval($data['ad_id']) . "'
GROUP BY opt_type");
while ($group_data = $db->fetch($group_query)) {
$option_query = $db->query("
SELECT *
FROM ads_options
WHERE opt_id = '" . intval($data['ad_id']) . "'
AND opt_type ='" . $group_data['opt_type'] . "'
ORDER BY opt_id DESC");
while ($option_data = $db->fetch($option_query)) {
}
}
输出:
Size : S
M
L
Color : White
Black
问:
如何加入以上单个语句当前查询?
更新:
当前的数据库结构
opt_id opt_type opt_name opt_price
1236 Size S 0
1236 Size M 1
1236 Color Black 1
1236 Color White 2
答
像这样的事情会得到独特的组合,可能会有所帮助
$group_query = $db->query("
SELECT
DISTINCT opt_id, opt_type, opt_size
FROM ads_options
WHERE opt_id = " . intval($data['ad_id']) . "
ORDER BY opt_type, opt_size");
如果你能提供更多的细节至于你正在努力实现什么,以及ads_options的完整设计,那么提供更多规格会更容易IFIC建议
而且未成年人的注意,如果opt_id是数字那么你就不在查询中需要使用单引号(')周围(所以把他们赶走例子)
编辑 类似于下面的东西将返回你的ID,类型的列表,然后根据第三场以逗号分隔值的列表,如果这是更多的帮助
$group_query = $db->query("
SELECT
opt_id, opt_type, GROUP_CONCAT(opt_name) AS opt_names
FROM ads_options
WHERE opt_id = " . intval($data['ad_id']) . "
ORDER BY opt_type");
欲了解更多有关GROUP_CONCAT看看这个链接http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
我不知道如果PHP编程有某种解决这个问题,我倾向于所以如果有人这样做的一个PHP版本知道要使用的ColdFusion以下则似乎以匹配OP被要求
<cfoutput query="qryAdOptions" group="opt_type">
#qryAdOptions.opt_type#
<cfoutput>
#qryAdOptions.opt_name#
</cfoutput>
</cfoutput>
http://bytes.com/topic/php/answers/11929-grouping-results-query#post50606似乎在暗示潜在下面的匹配上面贴的我,可能是有用的
$answer = array();
while ($row = pg_fetch_array($results)) {
if (!isset($answer[$row["obj_type"]])) {
$answer[$row["obj_type"]] = array();
}
$answer[$row["obj_type"]][] = $row;
}
然后遍历$答案。这会很好地发挥
SELECT * FROM ads_options WHERE opt_id = ......
谢谢西蒙..很多关于您的答案的信息,我很感激。 – kampit 2012-02-17 12:26:36
NP,你的问题碰巧出现在我等待测试:) – 2012-02-17 12:28:38
我做了什么.. http://pastebin.com/raw.php?i=h3VV9C0y – kampit 2012-02-17 12:53:03