gpt4 book ai didi

mysql - 如何计算列中的值并将每个列名称及其结果保存在一行中?

转载 作者:行者123 更新时间:2023-11-29 16:02:06 24 4
gpt4 key购买 nike

我正在为一些私有(private)网站制作数据库。在我的数据库中,我有一个名为 times 的表,我可以在其中保存用户名和用户空闲的时间。表格看起来像这样。

|uid |Monday|Tuesday |... |Saturday |Sunday |t12|t13|t14|...|t19|t20
_____________________________________________________________________

uid 是用户名,t12-t20 是时间(t16 = 1>星期一 = 1 表示用户在星期一 16 点有空。

一行的示例是:

|alex1|1|1|0|0|0|0|1|0|0|0|0|0|1|1|1|1|

这意味着用户alex1在周一、周二和周日的 17、18、19 和 20 点有空。

表中可以有多个用户,某些用户可以有多次。例如,用户 alex1 可以位于具有不同保存时间的更多行中。(示例:一行表示他在周一和周五 15 点之后有空,而另一行表示他在周六 14 点、17 点和 20 点有空)

示例:

gordon | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
gordon | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |

第一行表示:用户 gordon 在周一和周二 12 点有空 第二行表示:用户 gordon 在周三 13 点有空

问题是:

如何进行查询并通过表给出结果:

  Day    | t12 | t13 | t14 | t15 | t16 | t17 | t18 | t19 | t20 |
________________________________________________________________
Monday 5 4 8 8 8 4 0 0 4
Tuesday 2 2 2 2 2 1 0 0 2
Wednesday 10 10 10 2 8 10 8 7 7
Thursday 5 4 8 8 8 4 0 1 4
Friday 5 4 3 7 8 4 9 0 4
Saturday 8 9 8 3 9 4 3 0 4
Sunday 1 4 8 8 1 4 0 9 3

这意味着:周一 14 点有 8 个用户空闲,或者周五 20 点有 4 个用户空闲。

最佳答案

更好的设计的一个例子是有一个如下表:

可用性

user day time
1 1 16

这可能不是最好的解决方案,但它对您当前的设置来说是一个巨大的改进。

关于mysql - 如何计算列中的值并将每个列名称及其结果保存在一行中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56101085/

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