我GROUP BY
在 MySQL中遇到困难。
我的数据库设置:
client_visit
- id
- member_id
- status_type_id (type_of_visit table)
- visit_starts_at
- visit_ends_at
member
- id
schedule_event
- id
- member_id
- starts_at
- ends_at
type_of_visit
- id
- type (TYPE_BOOKED, TYPE_PRESENT etc)
Run Code Online (Sandbox Code Playgroud)
就这个问题而言:a在给定时间member
教一门课或领导一项活动 (a schedule_event
)。Aclient
报名参加此课程或活动。
例如:
客户 A、B 和 C 预订访问,而那些访问client_visit
由schedule_event_id
和组成的表member_id
,因此我们知道哪个班级和哪个成员正在教授/或进行活动。
现在,我们想知道给定成员花费在客户注册的教学/领导活动上的总时间(基于client_visit
type_of_visit
相当于“预订”或“出席”的列)。我们将把成员 ID 82 作为我们的测试用例。
会员 ID 82 在两个不同的班级有 4 个客户,所以如果每个班级花费 2 小时 15 分钟(8100 秒),那么总时间应该是 16200 秒。
首先是我的查询: …
我有一个条件来选择一个错误的 JSON 文档值。
我的行:
1. {"my_value": false}
2. {"my_value": 0}
3. {"my_value": "0"}
4. {"my_value": null}
5. {"my_value": true} // this one got selected
Run Code Online (Sandbox Code Playgroud)
我的查询:
SELECT * FROM my_table
WHERE JSON_UNQUOTE(JSON_EXTRACT(my_column, '$.my_value')) = false
Run Code Online (Sandbox Code Playgroud)
即使true
有价值,第 5 行也会被选中。我怎样才能防止这种情况?
版本是 MySQL 8.0.25。