zoukankan      html  css  js  c++  java
  • MySQL 左连接时,查询条件查询某个字段为空或者为特定值解决方案

    rt,在查询时候需要查出字段为空或者为某个特定值的数据,但是又不想使用or去组合。使用函数IFNULL,

    IFNULL(ca.is_on_sale,'1')

    IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。

    但当用于查询条件时,查询空数据需要注意。

    (SELECT parent_id from menu where code = #{menuCode} and parent_id != 0) 

    当这条语句返回null时,整条语句的返回值都是空的(where分支比select分支优先执行),这时,等价于下面这条语句:

     1 SELECT IFNULL(id,0) from project_menu where code = NULL 

    这就不是这个当id为空时,用0替换id返回这个概念了,因为当语句本身就是null时,语句中的函数就不会起作用

    SELECT DISTINCT 
        '新增' abilityType,
        CASE
          WHEN (cda.`order_from` = 0) 
          THEN "A" 
          WHEN (cda.`order_from` = 1) 
          THEN "B" ELSE "其它" 
        END AS orderFromFROM
        `comp_ability_apply` caa 
        LEFT JOIN `comp_demand_apply` cda 
          ON cda.id = caa.`apply_id` 
        LEFT JOIN `comp_oparty` co 
          ON co.`app_id` = cda.`app_id` 
        LEFT JOIN comp_ability_ext_from_shop ca 
          ON ca.`ability_name` = caa.`ability_name` 
          AND ca.`ability_version` = caa.`version` 
      WHERE caa.`status` = '0' 
      AND IFNULL(ca.is_on_sale,'1') = '1'
  • 相关阅读:
    发布spring cloud + vue项目
    以太坊上发行ERC20代币
    [转]大白话讲解Promise(一)
    比特币测试网络搭建
    非对称加密, 助记词, PIN, WIF
    搭建EOS未完
    [转]EOS智能合约 & 私链激活 & 基本操作
    [转]https://www.jianshu.com/p/06443248f4d8
    web3js 进行转账
    [转]How to Send Ethereum with Web3.js and Node
  • 原文地址:https://www.cnblogs.com/lidedong/p/12857075.html
Copyright © 2011-2022 走看看