mysql - 带有保存状态的 IF 语句中的 SELECT 和 SELECT
问题描述
我试图找到一些解决方案来避免第三次选择,但我什至不知道,如何谷歌它。
我的尝试(工作,但看起来很丑):
SELECT
u.*,
IF(
(SELECT meta_value from usermeta WHERE user_id = u.ID AND meta_key = 'first_name') = '',
'John',
(SELECT meta_value from usermeta WHERE user_id = u.ID AND meta_key = 'first_name')
) as first_name,
(SELECT meta_value from usermeta WHERE user_id = u.ID AND meta_key = 'reputation') as reputation
FROM wp_users AS u
我想要这样的东西:
SELECT
u.*,
IF(
(SELECT meta_value from usermeta WHERE user_id = u.ID AND meta_key = 'first_name') = '',
'John',
SOME_STATE0
) as first_name,
(SELECT meta_value from usermeta WHERE user_id = u.ID AND meta_key = 'reputation') as reputation
FROM wp_users AS u
解决方案
加入表而不是使用子查询。
SELECT u.*, IF(meta_value = '' OR meta_value IS NULL, 'John', meta_value) AS first_name
FROM wp_users AS u
LEFT JOIN usermeta AS m ON m.user_id = u.id AND m.meta_key = 'first_name'
推荐阅读
- swiftui - 为什么 watchOS 选择器总是显示“ScrollView contentOffset binding has been read”警告?
- c# - 无法使用 Xunit 测试端点 - StatusCode: 400, ReasonPhrase: 'Bad Request'
- java - 天气应用程序未显示回收站视图(在卡片视图中)。尝试了 Stack Overflow 的解决方案。没有任何工作
- time - 指定周期性时间间隔(例如:办公室的营业时间)
- python - Matplotlib 叠加双峰直方图
- python - 按元素值过滤Python中的列表列表
- express - 我收到此错误 TypeError: Cannot read properties of undefined (reading 'username')
- python - 如何在全局范围内对 Django 使用自定义参数?
- assembly - extern 命令未在程序集中的其他源文件中导入声明的变量
- pine-script - pinescript 指标显示在图表和单独的窗口中