gpt4 book ai didi

Mysql从具有多个键值对的表的单个字段中选择键的值

转载 作者:行者123 更新时间:2023-11-29 00:33:19 25 4
gpt4 key购买 nike

我有这样的表:

服务:

+----+-----------+------------+-------------+
| id | name | service_id | description |
+----+-----------+------------+-------------+
| 1 | CHAT | 1 | |
| 2 | SMS | 1 | |
+----+-----------+------------+-------------+

服务特性:

+----+------------+------------+-------------+
| id | service_id | name | description |
+----+------------+------------+-------------+
|10 | 1 | Audio | |
|20 | 1 | Video | |
|30 | 2 | BULKSMS | |
+----+------------+------------+-------------+

客户端服务:

+----+-----------+------------+----------------------------------+---------------------------------------------+
| id | client_id | service_id |service_features_id |service_values |
+----+-----------+------------+----------------------------------+---------------------------------------------+
|100 | 1000 | 1 |features:{10:enable, 20:disable} |values:{data_transfer:102400, quota:204800} |
|200 | 1001 | 2 |features:{30:enable} |values:{total_sms:100000, users:800} |
|300 | 1001 | 1 |features:{10:disable, 20:enable} |values:{quota:204800} |
+----+-----------+------------+----------------------------------+---------------------------------------------+

现在我想要任何键的服务值,即 data_transfer 或 quota for client_id 1000 only from mysql select query。 答案应分别为 102400 或 204800

有没有更好的方法来形式化表格或存储信息。请提出建议。

最佳答案

绝对有更好的方法。您的架构需要另外两个表,client_services_features 和一个 client_services_values,而不是 client_servicesclient_services_features 具有如下列:

  • 编号
  • client_id
  • 服务编号
  • service_feature_id
  • 启用

client_services_values 有如下列:

  • 编号
  • client_id
  • 服务编号
  • 值名称
  • 值_值

每当您发现一个表结构将事物列表保持在一行中时,您通常希望为该列表创建一个单独的表。当列表包含 ID 时,您总是希望为列表创建一个单独的表。

关于Mysql从具有多个键值对的表的单个字段中选择键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15547684/

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