gpt4 book ai didi

mysql - 显示数据库中列出值而非组织列的 MySQL 结果

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

在 WordPress 上,我们使用重力形式来收集用户数据。我正在花时间有效或正确地显示结果,以便我可以操作它并创建客户列表页面。

我习惯于看到这样的数据库:

id |名字 |姓氏 |等等|表单 ID

1 |约翰 |美国能源部 | x| 12

但是重力形式存储数据是这样的:

id |字段编号 |表单 ID |值

1 | 8 | 3 |约翰

2 | 14 | 14 3 |美国能源部

当然有几个field_numbers对应名字、姓氏、地址、电话等,但我没有列出。

所以我想做的就是运行一个 SELECT 语句并显示良好且有组织的结果,如下所示:

John Doe(需要在循环中彼此相邻的 2 个字段)

地址(当然我可以在循环中放置一个
来中断)等等

我很抱歉,但我没有以这种方式提取数据,我什至不知道它叫什么。

我下面的代码是一个无力的显示内容的尝试,但我知道它必须完全低效且不正确。提取数据的正确方法是什么?这种类型的存储叫什么(Gravity Forms 的做法)?

global $wpdb;
$rows = $wpdb->get_results( "SELECT form_id, value, field_number FROM
wp_rg_lead_detail WHERE form_id=3" );
foreach( $rows as $row ) {
if($row->field_number==1) {
echo $row->value;
}
if($row->field_number==8) {
echo $row->value;
}
}

最佳答案

不幸的是,我没有一个干净的解决方案给你,而且我不知道这种形式的存储除了真正的邪恶之外叫什么。也就是说,我认为鉴于已经几个小时没有回复,您可能会欣赏一些新想法作为可能的实验路径。我在这里包含了 2 个思路,它们应该与 mods 一起使用来处理您的其余数据,尽管仍然令人讨厌。祝你好运。

select distinct
f.form_id,
concat(first.val, ' ', last.val) as name
from
form f
inner join
(select f1.form_id, f1.val from form f1 where f1.field_number = 8) as first
on f.form_id = first.form_id
inner join
(select f2.form_id, f2.val from form f2 where f2.field_number = 14) as last
on f.form_id = last.form_id
where f.form_id = 3;


select distinct
f.form_id,
n.name
from
form f
inner join
(select
form_id,
group_concat(distinct val order by field_number asc separator ' ') as name
from
form
where
field_number = 8
or field_number = 14
group by form_id) n
on f.form_id = n.form_id
where f.form_id = 3;

关于mysql - 显示数据库中列出值而非组织列的 MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557417/

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