2016-11-20 3 views
0

私はそうのようなnested SELECT声明の中で見つかりませ行がない場合にメッセージを返すようにしたいです。この場合、Lakeが連続していない場合、戻りメッセージは「湖が見つかりません」です。私はIFNULLを試しましたが、湖がないときは何も返しません。IFNULLは、MySQL

SELECT GROUP_CONCAT(concat_ws(', ', Lake_name, 
            IFNULL(Area, 'not available'),        
            IFNULL(Altitude, 'not available'), 
            IFNULL(Depth, 'not available'), 
            IFNULL(River_outflow, 'not available') 
          ) SEPARATOR '; ') 
From LAKE WHERE IFNULL(Lake_name, 'no lakes found') IN 
         (SELECT Lake FROM LOCATION where County IN 
         (SELECT County FROM CITY WHERE City_name='$userinput')) GROUP BY NULL;"; 

答えて

1

私はあなたはそれが動作しますが、メッセージ・リターンはまだありませんこのよう

SELECT CASE when Lake_name is null then 'no lakes found' else 
     GROUP_CONCAT(concat_ws(', ', Lake_name, 
             IFNULL(Area, 'not available'),        
             IFNULL(Altitude, 'not available'), 
             IFNULL(Depth, 'not available'), 
             IFNULL(River_outflow, 'not available') 
           ) SEPARATOR '; ') END my_lake 
    From LAKE 
    WHERE LAKE_name IN (SELECT Lake_name FROM LOCATION where County IN 
         (SELECT County FROM CITY WHERE City_name='$userinput')) 
    OR LAKE_name is null ; 
+0

を選択するべきだと思います。その後、私は私が代わりにlake_nameの間違った湖を使用していたごめんなさい – tuyenle

+0

を最後に私も..「またはLAKE.Lake_nameはNULL GROUPがLake_name、地域、高度、深さ、River_outflow BYである」に変更し、私は少しlake_nameとの答えを更新しています..エイリアスが正しく動作しない可能性がありますので、私はmy_lakeの列名のエイリアスを変更します。私に知らせてください – scaisEdge

+0

ええ、私は気付きました。私はいくつかの変更を加えました。それは今働く – tuyenle

関連する問題