确定 MySQL 中的列值是不是为空/非空

Posted

技术标签:

【中文标题】确定 MySQL 中的列值是不是为空/非空【英文标题】:Determine if column value is null/non-null in MySQL确定 MySQL 中的列值是否为空/非空 【发布时间】:2013-04-05 07:15:41 【问题描述】:

我有两个表,一个包含用户数据,user,第二个包含那些将他们的帐户与 Twitter 绑定的用户,user_twitter。由于第二个表不包含每个用户的对应值(例如,那些尚未将其帐户与 Twitter 连接的用户),我正在使用 LEFT JOIN 进行查询:

SELECT DISTINCT `user_twitter`.uid AS `connected` 
FROM `user` 
LEFT JOIN (SELECT uid FROM `user_twitter`) AS `user_twitter` ON `user`.uid = `user_twitter`.uid

我想要做的是返回一个布尔值(如果user_twitter.uid 是非空值,则返回 true,如果为空则返回 false)。有什么指点吗?

【问题讨论】:

is not null...基本SQL @Barranka 谢谢。凌晨 3 点 == 大量基本记忆丧失 【参考方案1】:
SELECT  a.uid AS `connected`,
        (b.uid IS NOT NULL) bool_val
FROM    `user` a
        LEFT JOIN `user_twitter` b
            ON a.uid = b.uid

将返回0 为假,1 为真。但是如果你想要truefalse 的字符串值,

SELECT  a.uid AS `connected`,
        CASE WHEN b.uid IS NOT NULL THEN 'True' ELSE 'False' END bool_val
FROM    `user` a
        LEFT JOIN `user_twitter` b
            ON a.uid = b.uid

【讨论】:

以上是关于确定 MySQL 中的列值是不是为空/非空的主要内容,如果未能解决你的问题,请参考以下文章

Webi - 当另一列值为空时隐藏中断中的列

如何检查 MySQL 中的列是不是为空或 null?

如何检查 MySQL php 中的列是不是为空?

特定类型的查询

如何检测 SELECT 中的列是不是可以为空?

php判断mysql数据库是不是为空