2013-03-17 128 views
0

这里是MySQL的我做:mysql:如何找不到记录时返回NULL结果?

mysql> select "Le Café de la Mairie" as titre, "15 pl Mairie" as adresse1, id from ville where sound=soundex('FERTE SOUS JOUARRE') and cp='77260'; 
+-----------------------+--------------+-----+ 
| titre     | adresse1  | id | 
+-----------------------+--------------+-----+ 
| Le Café de la Mairie | 15 pl Mairie | 447 | 
+-----------------------+--------------+-----+ 
1 row in set (0.00 sec) 

mysql> select "Le Café de la Mairie" as titre, "15 pl Mairie" as adresse1, id from ville where sound=soundex('FERTE SOUS JOUARRE') and cp='77261'; 
Empty set (0.00 sec) 

mysql> 

这是我想要的东西:

mysql> select "Le Café de la Mairie" as titre, "15 pl Mairie" as adresse1, id from ville where sound=soundex('FERTE SOUS JOUARRE') and cp='77260'; 
+-----------------------+--------------+-----+ 
| titre     | adresse1  | id | 
+-----------------------+--------------+-----+ 
| Le Café de la Mairie | 15 pl Mairie | 447 | 
+-----------------------+--------------+-----+ 
1 row in set (0.00 sec) 

mysql> **(same query but dont find a record)**; 
+--------------+------------+------+ 
| titre  | adresse1 | id | 
+--------------+------------+------+ 
| NULL   | NULL  | NULL | 
+--------------+------------+------+ 

mysql> 

当然,我已经谷歌搜索&计算器。

+0

你可以使用case语句或合并? – DevelopmentIsMyPassion 2013-03-17 20:29:27

+0

我只是希望它能在5.0.51a **'')** ** – 2013-03-17 20:45:15

回答

1
SELECT 
    t.* 
FROM 
    (SELECT 1) AS dummy 
    LEFT JOIN 
    (SELECT ... your select here) AS t 
     ON TRUE ; 

所以,坚持使用问题:

SELECT 
    t.* 
FROM 
    (SELECT 1) AS dummy 
LEFT JOIN 
    (SELECT 
     "Le Café de la Mairie" as titre, 
     "15 pl Mairie" as adresse1, 
     id 
     FROM ville 
     WHERE sound=soundex('FERTE SOUS JOUARRE') 
     AND cp='77261') AS t 
ON TRUE; 
+0

嗨,为了坚持我的问​​题中的示例,我只是将“77260”更改为“77261”,以使Sur没有记录找到。所以,如果我把你的'风格'的查询,这将给出:'选择吨。*从双LEFT JOIN(选择“LeCaféde la Mairie”作为滴答声,“15 pl Mairie”作为adresse1,id从ville哪里声音= soundex('FERTE SOUS JOUARRE')和cp ='77261')AS t ON TRUE;' – 2013-03-17 20:41:18

+0

但是这给了我一个错误:'错误1064(42000):你的SQL语法错误;检查手册这对应于您的MySQL服务器版本的正确语法使用附近'左加入(选择“LeCaféde la Mairie”作为滴答,“15 pl Mairie”作为adresse1,'在第1行 ' – 2013-03-17 20:41:53

+0

您错过了一个括号上面的代码 – 2013-03-17 20:43:54

相关问题