标题可能没解释清楚
日期          温度
10.20        10-20
10.21        10-15我输入17 可以返回 如下这条内容
日期          温度
10.20        10-20请问想达到这个效果 sql语句怎么写 谢谢

解决方案 »

  1.   

    建议把温度这个栏位拆开成 最高温度 和 最低温度 两个栏位,这样就只需判断 x>最低温度且x<最高温度 就行了
    如果说你只想根据一个栏位的话,那就只好自己写个split函数,拆开成两个数再来判断
      

  2.   

    稍微研究了下,发现有解决方案SELECT * FROM T
    WHERE CAST(SUBSTRING_INDEX(`温度`, '-', 1) AS SIGNED INTEGER) < 17
      AND CAST(SUBSTRING_INDEX(`温度`, '-', -1) AS SIGNED INTEGER) > 17
      

  3.   

    SELECT
      *
    FROM
      T
    WHERE 17 BETWEEN CAST(
        SUBSTRING_INDEX('温度', '-', 1) AS SIGNED INTEGER
      )
      AND CAST(
        SUBSTRING_INDEX('温度', '-', - 1) AS SIGNED INTEGER
      );