select * from a where b = '%111%',这个语句有问题吗

解决方案 »

  1.   

    好明显的错
    select * from a where b like '%111%' 模糊查询
    select * from a where b = '111' 精确查询
      

  2.   

    语法是没有错的,不过想模糊查询要用like
      

  3.   

    如果你想查询类似 a111b abc111d这样的记录应该是
    select * from a where b like '%111%'
      

  4.   

    语句本身没有语法错误,就是找出b="'%111%"的值
    当然,lz要是模糊查询的话就
    select * from a where b like '%111%' 查出含有"1111" 的值
      

  5.   

    我现在有一组查询,有的要模糊查询,有的要精确查询,sql语句中查询条件用占位符代替,在赋值时我不想区别哪些是精确,哪些是模糊的,所以赋值时都加了"%%",这个以前没有用过,不知道会不会出问题,现在试是没有问题的,但是这样用总感觉不爽,怕以后指不定什么时候给来个问题
      

  6.   

    LZ问题描述不细啊 
     你是要查询A表中%111% 还是要做模糊查询啊 你写的这句是精确查询啊,是在a表中查询所有b='%111%'的数据
      

  7.   

    不区分精确和模糊,那就统一模糊呗。
    不用加占位符。
    select * from a where b like '%111%'
      

  8.   

    select * from a where b like '%111%';模糊查询
    但若是就想查值为’%111%‘的记录,那就用等号了
      

  9.   

    for (int i = 0; i < paramsValue.size(); i++) {
    if (paramsValue.get(i) instanceof String)
    stmt.setString(i + 1, "%" + (String)paramsValue.get(i) + "%");
    else if (paramsValue.get(i) instanceof Integer)
    stmt.setInt(i + 1, ((Integer)paramsValue.get(i)).intValue());
    else if (paramsValue.get(i) instanceof Double)
    stmt.setBigDecimal(i + 1, BigDecimal.valueOf(((Double)paramsValue.get(i)).doubleValue()));
    }
    我是在给占位符赋值时不能区别哪些是模糊查询,哪些是精确的,所有都加了“%%”
      

  10.   

    select * from a where b = '%111%'
    如果b是int类型,此语法错误。
    否则语法没有问题只是查不到你想要的结果。
      

  11.   

    select * from a where b like '%111%'
      

  12.   

    select * from a where b like '%111%';
      

  13.   

    如果是String类型,没有错误,但是不建议这样使用