简体   繁体   English

如何在MySQL表中连续获取四个字段?

[英]How do I get four fields as a row in a MySQL table?

How do I get four fields as a row in a MySQL table? 如何在MySQL表中连续获取四个字段?

Table structure: 表结构:

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

The html output should be: html输出应为:

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

etc.. 等等..

I have no code samples as I have no clue where to begin. 我没有代码示例,因为我不知道从哪里开始。 I have over 300,000 rows. 我有超过30万行。

One approach to achieve what you want would be to consider each group of 4 consecutive id values as a group, and then do a group concatenation over each set of records: 实现所需目标的一种方法是将每组四个连续的id值视为一个组,然后对每组记录进行组连接:

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

you can try use remainder of the division % for get remainder number 4. for example 您可以尝试使用除法%的余数来获取余数4。例如

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

This is what I would do: 这就是我要做的:

$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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM