Mysql 与 Between\in 范围条件

标签 mysql conditional-statements between

我们有 x2 列 minmax。每个都可以是 nullinteger。当我们开始搜索抛出表时,我们不能使用 BETWEEN 命令...问题是,如何在具有此条件的范围内查找

  1. value 大于 min(如果不为 null)

  • value 小于 max(如果不为空)
  • valueminmax 范围内(如果它们都不为空)
  • value - 我们的整数。正如您所看到的,我们不能使用 BETWEEN 命令。

    最佳答案

    所以NULL意味着没有限制。您仍然可以使用BETWEEN:

    select *
    from mytable
    where @value between coalesce(minvalue, @value) and coalesce(maxvalue, @value);
    

    或者简单地AND:

    select *
    from mytable
    where @value >= coalesce(minvalue, @value) 
      and @value <= coalesce(maxvalue, @value);
    

    或者非常基本的ANDOR:

    select *
    from mytable
    where (@value >= minvalue or minvalue is null)
      and (@value <= maxvalue or maxvalue is null);
    

    关于Mysql 与 Between\in 范围条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36502196/

    相关文章:

    php - 2 同时为每个语句?

    cmp je/jg 他们如何在汇编中工作

    mysql - 将MySql中的varchar转换为给定的日期格式

    mysql - 对相同类型表的两个相同类型的查询但输出不同

    php - 如何更正条件 WHERE 和 JOIN sql 表请求?

    excel - 计算Excel行中的当前条纹

    mysql - SQL "BETWEEN"请求不按我的意愿行事

    sql-server - 两个日期时间字段之间的 SQL Server,无法正常工作

    php - Mysql between operator 只显示第一行

    MySQL 查询运行缓慢