如何在MySQL表中将四个字段作为一行?

时间:2016-04-19 14:44:12

标签: php mysql row

如何在MySQL表中将四个字段作为一行?

表格结构:

id     name
------------
1     John
2     Doe
3     M
4     King
5     Mark
6     Someone
7     Thing
8     Super

html输出应为:

John - Doe - M - King
Mark - Someone - Thing - Super

等。

我没有代码示例,因为我不知道从哪里开始。我有超过300,000行。

3 个答案:

答案 0 :(得分:1)

实现您想要的方法的一种方法是将每组4个连续id值视为一个组,然后对每组记录进行组连接:

SELECT GROUP_CONCAT(`name` SEPARATOR ' - ')
FROM yourTable
GROUP BY (id - 1) DIV 4

答案 1 :(得分:1)

你可以尝试使用除法%的余数来得到余数4,例如

  for($i=0;$i<count($row);$i++) {
      echo $row['name'] ;
      if($i%4==0) {
         echo '<br/>';
      } else {
         echo ' - ';
      }
   }

答案 2 :(得分:0)

这就是我要做的事情:

$mysqli = database::connect(); // Get a connection
if ($result = $mysqli->query("SELECT name FROM tablename ORDER BY id ASC")) {
    $i = 0;
    $data = "";
    while($row = $result->fetch_array(MYSQLI_ASSOC)) {
        $data .= $row['name'];
        $i++;
        if ($i < 4) {
            $data .= " - ";
         } else {
            $data .= "<br />";
            $i = 0;
         }
    }
    $result->close();
}
echo $data;