我想在nested SELECT语句中找不到这样的行时返回一条消息。在这种情况下,当连续没有Lake时,返回消息为“未找到湖泊”。我试过IFNULL,但是当没有湖泊时它什么也不会返回。

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;";

最佳答案

我认为你应该选择这种方式

  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 ;

关于mysql - 嵌套SELECT语句mysql中的IFNULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40709552/

10-12 03:15