在MySQL,我可以选择列只存在的东西吗?

例如,我有以下查询:

select phone, phone2
from jewishyellow.users
where phone like '813%'
and phone2

我试图只选择电话以813开始的行,电话2有一些东西在里面。


当前回答

我们可以使用CASE将空白值设置为一些字符或字符串。 我使用NA作为默认字符串。

SELECT phone,   
CASE WHEN phone2 = '' THEN 'NA' END AS phone2 ELSE ISNULL(phone2,0) 
FROM jewishyellow.users  WHERE phone LIKE '813%'

其他回答

Use:

SELECT t.phone, 
       t.phone2 
  FROM jewishyellow.users t
 WHERE t.phone LIKE '813%' 
   AND t.phone2 IS NOT NULL

我们可以使用CASE将空白值设置为一些字符或字符串。 我使用NA作为默认字符串。

SELECT phone,   
CASE WHEN phone2 = '' THEN 'NA' END AS phone2 ELSE ISNULL(phone2,0) 
FROM jewishyellow.users  WHERE phone LIKE '813%'

比较phone2的值和空字符串:

select phone, phone2 
from jewishyellow.users 
where phone like '813%' and phone2<>''

注意,NULL值被解释为false。

select phone, phone2 from jewishyellow.users 
where phone like '813%' and phone2 is not null

如果phone2字段中有空格,则可以使用IFNULL和TRIM函数忽略这些记录:

SELECT phone, phone2
FROM jewishyellow.users
WHERE phone LIKE '813%'
    AND TRIM(IFNULL(phone2,'')) <> '';