gpt4 book ai didi

mysql - 如何从专用 'fields' 表中选择值?

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

我的 MySQL 数据库中有两个表,它们是: Tho tables here

我想要一些记录的字段在建表阶段没有预定义,这样我就可以使用这对表来存储设置了不同字段的记录。

我用以下记录填充这些表: Records

我想编写将返回以下结果的选择查询:

desired result

有没有办法在 MySQL 中做到这一点,或者我应该选择两个表并在 PHP 中处理它们以获得我需要的结果?

UPD:请注意,我事先不知道字段的名称是什么,因此我无法将字段的“名称”硬编码到选择查询中。

最佳答案

您可以通过检索列名并生成查询来使用动态 SQL 来完成此操作(例如: How To have Dynamic SQL in MySQL Stored Procedure )

但是我肯定会为此选择 PHP 路线。它需要大量的字符串操作,而这并不是 SQL 的设计目的。

最终查询将类似于(伪代码):

SELECT 
ID
,Time
,Source
,SUM(CASE WHEN field_name = 'Length' THEN field_value END) AS [Length]
,etc
FROM records
INNER JOIN fields
GROUP BY
ID

对于找到的每个不同的字段名称使用不同的 CASE 语句。

关于mysql - 如何从专用 'fields' 表中选择值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26301630/

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