mysql - 嵌套 select 语句 mysql 中的 IFNULL

标签 mysql sql

当在嵌套 SELECT 语句中找不到行时,我想返回一条消息,如下所示。在本例中,当连续没有 Lake 时,返回消息为“no Lake found”。我尝试了 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/

相关文章:

sql - 带有 ODBC SQL 查询的 Julia ReadOnlyMemoryError

sql - 尝试使用 MySQL 将 1 添加到当前字段值,但无法弄清楚我的语法有什么问题

mysql - 按未包含在结果集中的列进行排序是否有意义?

mysql - 如何与 MySQL/PHP 建立安全连接

php - MVC/PDO : how to build a model using PDO's prepared statements syntax?

php - 如何在特定列中插入时间戳值?

SQL Azure 联合和索引 - 性能说明

mysql - 从多个表中获取值(value)

php - opencart从excel导入用户

mysql - 如何获取具有特定值的下一条记录,然后返回一条记录以从日志中计算 session 持续时间?