select * from tbname where a=1 or b =2 or c=3

解决方案 »

  1.   

    建议中文或字符串关键字查询 使用 like 关键字  ,例如 like '%企业%' 。在程序中进行非空判断并对空条件做一定处理(加一层保护)
      

  2.   

    写完整吧,比如表名为aaa   楼盘名称为111  预售证号为222   开发商名称为333  小弟很菜。
      

  3.   

    你要说清楚,三个都输入用and 还是 or 连接。
      

  4.   

    写完整吧,比如表名为aaa   楼盘名称为111  预售证号为222   开发商名称为333  小弟很菜。
    select * from aaa where a like "%111%" or b like "%222%" or c like "%333%";
      

  5.   

    是不是说如果非空就作为同时满足的条件?
    如输入了楼盘名称和预售证号,就输出同时满足含有楼盘名称和预售证号的结果;
    如输入楼盘名称、预售证号和开发商,就输出同时含有这三个内容的结果。这样的话,对应每一项输入,搜索每件应该是:要么没有输入,要嘛作为搜索条件(len(inA)=0 or FieldA like CONCAT("%"), inA, "%")
    然后把三个条件用And连接;
    (len(inA)=0 or FieldA like CONCAT("%"), inA, "%") AND (len(inB)=0 or FieldB like CONCAT("%"), inB, "%") AND (len(inC)=0 or FieldC like CONCAT("%"), inC, "%")
    这样如果三项都没有输入,则检索全部记录。
      

  6.   

    (len(inA)=0 or FieldA like CONCAT("%", inA, "%")) AND (len(inB)=0 or FieldB like CONCAT("%", inB, "%")) AND (len(inC)=0 or FieldC like CONCAT("%", inC, "%"))
      

  7.   

    还有一种方法...
    分别作判断
    好比如下
    $colA==''?$colAcondition = " colA='$colA' ":$colAcondtion = ' 1=1 ';
    $colB==''?$colBcondition = " colB='$colB' ":$colBcondtion = ' 1=1 ';
    $colC==''?$colCcondition = " colC='$colC' ":$colCcondtion = ' 1=1 ';
    if ($colA=='' and $colB=='' and $colC==''){
    $condition = ' 1=1 ';
    }else{
    $condtion = $colAcondition." and ".$colBcondition." and ".$colCcondition;
    }$sql = "select * from table where ".$condtion;
    后面就是你的一些查询处理之类的....
      

  8.   

    上面的是==
    按照上面其他楼说的..
    你最好是把colA='$colA'换成 colA like '%$colA%' 之类的...
      

  9.   


    图上的三个搜索框,字段都在一个表里同一条记录中的三个字段。
    目前只有第一个框能搜索出东西,后面两个框搜索无效。我要三个框任意框能搜索出东西,和三个框任意两个三个组合都能搜索出东西。<form method="get" action="{cms_abs}search.php">
    <input type="hidden" name="chid" value="209" />
    <input type="hidden" name="caid" value="815" />
    楼盘名称<input type="text" id="searchword" name="searchword" value="" />
    预售证号:<input name="fmdata['yszh']" type="text" id="yszh"  value="" /> 
    开发企业名称:<input  name="fmdata['kaifashang']"  type="text" id="kaifashang"  /> 
    <input type="submit" class="ysssbtn" value=" "/>
    </form>
    搜索框是这么写的以下是获取搜索结果的列表
    {c$yszlb [tclass=archives/] [chids=209/] [chsource=2/] [caidson=1/] [casource=1/] [caids=815/] [detail=1/] [isfunc=1/] [wherestr=u_sql_arc()/] [ttl=600/] [mp=1/]}
    列表
    {/c$yszlb}表名字为:cms_archives_209  栏目id 815   楼盘名称字段为subject  预售证号 yszh  开发商名称 kaifashang 
    指点下怎么改呢
    给说详细点,各种可能我都实验过了,整了一天了,还没弄好,求看看。
      

  10.   

    版主都跟你说咯
    你是AND还是OR的逻辑...
    AND的逻辑最简单,按照我上面说的..自己组合查询语句...
    OR的逻辑复杂点...
    不过你自己可以造成组合...不过给你我个人的思路..
    先分别判断输入框是否为空,或者全部为空..生成一个where的查询条件..
    再将这三个where查询条件组合成一个...
    你可以将or 写入你每一个生成的where里面...
    这样组合就简单些
      

  11.   

    (LENGTH(inA)=0 or FieldA like CONCAT("%", inA, "%")) AND (LENGTH(inB)=0 or FieldB like CONCAT("%", inB, "%")) AND (LENGTH(inC)=0 or FieldC like CONCAT("%", inC, "%"))
    可保证任一输入值的组合都可查询到结果
    如果要使无输入时没有查询结果,则需加上前缀条件
    LENGTH(CONCAT(inA,inB,inC))>0 AND