带有保存状态的 IF 语句中的 SELECT 和 SELECT

ruslan_krivoshein

我试图找到一些解决方案来避免第三次 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'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

select语句中的sql转换

来自分类Dev

OData select语句中的别名

来自分类Dev

mysqli准备语句中带有fetch_array的SELECT语句

来自分类Dev

在IF语句中具有多个条件的PDO MySQL SELECT

来自分类Dev

Select语句中的布尔逻辑

来自分类Dev

Select语句中的列名无效

来自分类Dev

C#如果LINQ select子句中有语句

来自分类Dev

SELECT PDO准备语句中的SELECT

来自分类Dev

SELECT语句中的DATETIME函数

来自分类Dev

Select语句中的子查询

来自分类Dev

在SELECT语句中绑定变量

来自分类Dev

SELECT语句中带有WHERE子句的嵌套COUNT

来自分类Dev

在TSQL SELECT语句中,“ As”和“ =”有什么区别?

来自分类Dev

在select语句中设置变量?

来自分类Dev

SELECT嵌套在WITH语句中

来自分类Dev

在.Where和.Select语句中缓存函数调用的结果

来自分类Dev

TSQL在带有连接的Select语句中与众不同

来自分类Dev

WHERE子句中的Select语句

来自分类Dev

Select语句中的列名无效

来自分类Dev

SELECT语句中的sql concat

来自分类Dev

C#如果LINQ select子句中有语句

来自分类Dev

select语句中的行重复

来自分类Dev

遍历SELECT语句中的引用

来自分类Dev

在select语句中带有变量的MySQL Cursor

来自分类Dev

select 语句中的存储过程

来自分类Dev

SELECT 语句中的 CakePHP TIMESTAMPDIFF

来自分类Dev

如何从.net中的Tsql select语句中提取所有表名和别名

来自分类Dev

替换 select 语句中的值

来自分类Dev

如何在 SELECT 语句中重命名和引用 COUNT(*)?