我有一条语句:
select * from homeifo where xiaoquname  like  '%%' 
                           and quyu like '%%' 
                           and (price between '' and '') 
                           and (mianji between '0㎡' and '150㎡') order by time desc;我执行了一下  结果什么都没有搜出来 可是范围里确实有这样的数据
我把字段面积改成空值 仍然什么都没有搜出来但是我把between的语句删除掉就能搜出来了可能是like语句和between不能放在一起吧请问各位大哥,这个问题怎么才能解决呢?

解决方案 »

  1.   

    字符串你用“between”比较啊?
      

  2.   

    price between '' and '' 等于 price=''
      

  3.   


    问题就出在这里:and (price between '' and '') 满足这个条件的除非price为0
    and (mianji between '0㎡' and '150㎡')面积最好不要加上M2,用纯数字去比较
      

  4.   

    mianji between '0㎡' and '150㎡'带单位的比较?赫赫
      

  5.   

    我的数据库mianji字段里有61这个值我用mianji between '61' and '61' 就能搜出来用mianji between '60' and '62' 就搜不出来  这是怎么回事啊
      

  6.   

    price between '' and ''----这个得不到结果的
    mianji between '0㎡' and '150㎡'----字符串不能这样用
    这2个地方都有问题
      

  7.   

    LZ面积这个字段是什么类型的?如果是varchar的,那就可以执行下面的语句:
    select * from homeifo where xiaoquname  like  '%%'  
    and quyu like '%%'  
    and (price between '' and '')  
    and (cast(ltrim(rtrim(mianji)) as char) between '0㎡' and '150㎡')
    order by time desc
      

  8.   

    补充一下:刚才那条语句,必须保证price字段是int类型,否则不出数据
      

  9.   

    price between '' and '' 这儿有问题,这个条件相当于 price = '',如果没有满足这个条件的记录的话,整个where条件将为假,所以就查不出来记录了。