我有一个属性表。我想选择所有的属性。
但我想安排一些属性,如客户A的1个属性,客户B的1个属性,客户C的1个属性等,如下所示。
customer Property ID
A 1001
B 900
C 1002
D 1003
A 799
B 803
C 600
D 670
我该怎么做?任何帮助表示感谢。
问候
答案 0 :(得分:1)
$query = mysql_query("SELECT customer, property_id FROM mytable");
$output = array();
while ($row = mysql_fetch_assoc($query)) {
$output[$row['customer']][] = $row['property_id'];
}
var_dump($output);
答案 1 :(得分:1)
如果您更喜欢纯 SQL 解决方案(使用MySQL):
SET @rank = 1;
SET @prev = '';
SELECT customer, property
FROM (SELECT *,
IF(@prev <> customer, @rank := 1, @rank := @rank + 1) AS rank,
IF(@prev <> customer, @prev := customer, NULL)
FROM properties
ORDER BY customer) AS ranked
ORDER BY rank, customer;
这是SQLFiddle。
我们的想法是在每个客户中枚举连续数字 1..n 的所有属性,然后首先使用rank = 1
,然后使用rank = 2
,等等...