gpt4 book ai didi

mysql - 尝试使用 CASE 过滤查询结果

转载 作者:行者123 更新时间:2023-11-30 21:26:49 26 4
gpt4 key购买 nike

我有 2 个 WP 表,第一个是标准用户表,第二个是额外字段插件。第二张表由具有字段 user_id、field_id 和 value 的类型构成

我构建了以下查询以从第二个表中提取数据,但无法确定如何根据“州”字段过滤结果。

放入一行 WHERE State = 'SA' 只会抛出错误代码:1054。'where 子句'中的未知列 'State' 尝试将 'IF' 语句添加到 CASE 行不起作用...有人有任何想法吗?

SELECT
`wpty_users`.`user_login` AS `user_login`,
`wpty_users`.`display_name` AS `display_name`,
MIN(CASE WHEN `wpty_cimy_uef_data`.`FIELD_ID` = 8 THEN `wpty_cimy_uef_data`.`VALUE` ELSE NULL END) AS `Club`,
MIN(CASE WHEN `wpty_cimy_uef_data`.`FIELD_ID` = 9 THEN `wpty_cimy_uef_data`.`VALUE` ELSE NULL END) AS `State`
FROM
`wpty_users`
LEFT JOIN `wpty_cimy_uef_data` ON `wpty_users`.`ID` = `wpty_cimy_uef_data`.`USER_ID`
GROUP BY `wpty_cimy_uef_data`.`USER_ID`
ORDER BY `wpty_users`.`user_login`

最佳答案

您可以包装您的查询:

SELECT *
FROM (
SELECT
`wpty_users`.`user_login` AS `user_login`,
`wpty_users`.`display_name` AS `display_name`,
MIN(CASE WHEN `wpty_cimy_uef_data`.`FIELD_ID` = 8 THEN `wpty_cimy_uef_data`.`VALUE` ELSE NULL END) AS `Club`,
MIN(CASE WHEN `wpty_cimy_uef_data`.`FIELD_ID` = 9 THEN `wpty_cimy_uef_data`.`VALUE` ELSE NULL END) AS `State`
FROM
`wpty_users`
LEFT JOIN `wpty_cimy_uef_data` ON `wpty_users`.`ID` = `wpty_cimy_uef_data`.`USER_ID`
GROUP BY `wpty_cimy_uef_data`.`USER_ID`
ORDER BY `wpty_users`.`user_login`
) x
WHERE `State` = 'SA'

或者更好的是,您可以在 HAVING 子句中使用列别名(就目前而言,这在 MySQL 中受支持):

SELECT
`wpty_users`.`user_login` AS `user_login`,
`wpty_users`.`display_name` AS `display_name`,
MIN(CASE WHEN `wpty_cimy_uef_data`.`FIELD_ID` = 8 THEN `wpty_cimy_uef_data`.`VALUE` ELSE NULL END) AS `Club`,
MIN(CASE WHEN `wpty_cimy_uef_data`.`FIELD_ID` = 9 THEN `wpty_cimy_uef_data`.`VALUE` ELSE NULL END) AS `State`
FROM
`wpty_users`
LEFT JOIN `wpty_cimy_uef_data` ON `wpty_users`.`ID` = `wpty_cimy_uef_data`.`USER_ID`
GROUP BY `wpty_cimy_uef_data`.`USER_ID`
HAVING `State` = 'SA'
ORDER BY `wpty_users`.`user_login`

关于mysql - 尝试使用 CASE 过滤查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58513360/

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