如何在需要具有相同列值的多行时使用LIMIT进行选择?

时间:2012-02-02 10:36:26

标签: mysql select group-concat

我有下表作为例子。

id uid car 
1  3   BMW
2  3   AUDI
3  3   JEEP
4  5   MERC
5  6   BMW
6  6   FIAT

现在,我想获得所有车辆,但只有2位用户,但不知道他们有多少辆车。当他们都只有一辆车的时候,我可以做一个LIMIT 3,但我怎么能这样才能得到所有的车,但只有2个用户?

1 个答案:

答案 0 :(得分:1)

修改

如果2个用户未知,您可以使用MySQL GROUP_CONCAT

$query = mysql_query("SELECT uid, GROUP_CONCAT(car) as cars FROM tablename GROUP BY uid ORDER BY uid ASC LIMIT 0,2");
while ($get = mysql_fetch_array($query)) {
  $userid = $get['uid'];
  $result = explode(",", $get['cars']);
  echo '<h2>User #' . $userid . ' owns the following cars:</h2>' . "\n";
  echo '<ul>' . "\n";
  foreach ($result as $car) {
    echo '  <li>' . $car . '</li>' . "\n";
  }
  echo '</ul>' . "\n";
}

注意:不要忘记更改SELECT查询中的表名