gpt4 book ai didi

mysql - 如何使用mysql通过where子句搜索垂直表

转载 作者:行者123 更新时间:2023-11-29 07:26:09 26 4
gpt4 key购买 nike

我需要你的帮助,我是使用垂直表的新手,我现在正在寻找使用 WHERE 子句搜索表当 field=1 为特定值时。

结果是意外的,字段返回NULL值,在这个link中查找结果

这是创建表的代码:

CREATE TABLE yourtable 
(`userid` varchar(100), `field` varchar(200), `data` varchar(100));

INSERT INTO yourtable
(`userid`, `field`, `data`)
VALUES
('1', '4', 'Blank'),
('2', '4', 'Blank'),
('1', '1', 'Amani'),
('1', '2', 'Engineering'),
('1', '3', 'Cairo'),
('2', '1', 'Adel'),
('2', '2', 'Engineering'),
('2', '3', 'Cairo');

给出意外结果的查询

select
userid,
MAX(CASE WHEN field=1 THEN data ELSE NULL END) AS Name,
MAX(CASE WHEN field=2 THEN data ELSE NULL END) AS Faculty,
MAX(CASE WHEN field=3 THEN data ELSE NULL END) AS University,
MAX(CASE WHEN field=4 THEN data ELSE NULL END) AS Place_Status
FROM yourtable
WHERE data='Amani'
GROUP BY userid;

我相信你能知道为什么会发生这种情况,如果有其他方法可以不使用where子句来实现搜索,欢迎

最佳答案

您可以这样编写查询:

select
userid,
MAX(CASE WHEN field=1 THEN data END) AS Name,
MAX(CASE WHEN field=2 THEN data END) AS Faculty,
MAX(CASE WHEN field=3 THEN datL END) AS University,
MAX(CASE WHEN field=4 THEN data END) AS Place_Status
FROM
yourtable
WHERE
userid IN (SELECT userid from yourtable where data='Amani')
GROUP BY userid;

由于 where 子句,您的查询将返回所有空值 - 仅选择以下行:

('1', '1', 'Amani')

关于mysql - 如何使用mysql通过where子句搜索垂直表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34483957/

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