gpt4 book ai didi

php - 在mysql中获取相似行数

转载 作者:可可西里 更新时间:2023-11-01 06:37:31 25 4
gpt4 key购买 nike

我正在做一个项目,导师可以在这个项目中节省上课时间。他可以根据日子看他的时间。我用了代码

$qry = mysqli_query($con, 'select * from users left join time_slot on users.id=time_slot.u_id where users.id=' . $id);
echo '<table class="table_class" border="2">
<tr>
<th class="details">id</th>
<th class="details">Date</th>
<th class="details">start time</th>
<th class="details">End Time</th>
</tr>';
while ($row = mysqli_fetch_array($qry)) {
echo '<tr>';
echo '<td class="details">' . $row['id'] . '</td>';
echo '<td class="details">' . $row['name'] . '</td>';
echo '<td class="details">' . $row['day'] . '</td>';
echo '<td class="details">' . $row['time_from'] . '</td>';
echo '<td class="details">' . $row['time_to'] . '</td>';
echo '</tr>';
}
echo '</table>';

但是如果导师在同一天有多个课,它会显示多个时间。我想显示他是否在同一天(星期一)有 2 节或更多课,然后所有时间段都显示在一行中。一周中的所有日子都一样。我该怎么做?

最佳答案

您可以使用 GROUP_CONCAT为此功能。假设你的 ddl 是这样的

create table users(id bigint, name varchar(50));
create table time_slot(id bigint, u_id bigint, day datetime, time_from time, time_to time);

sql 如下:

select u.id,u.name, ts.day, 
group_concat(ts.time_from, ' - ', ts.time_to ORDER BY ts.time_from, ts.time_to)
from users u left outer join time_slot ts on u.id = ts.u_id
group by u.id, u.name, ts.day
order by u.name, ts.day

参见 fiddle .

关于php - 在mysql中获取相似行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34542898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com