如何在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行。
答案 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;