我在做cxgrid的全文检索的时候,是这样设计的:按列使用for循环查,之间使用or
附上部分代码作为参考              begin
                DataController.Filter.Root.BoolOperatorKind := fboOr; //列之间为or关系
                sSearchContent := '%' + Trim(sEdit.Text) + '%';
                for I := 0 to ColumnCount - 1 do
                  begin
                    Application.ProcessMessages; //防止进程阻塞
                    if Columns[I].Visible then //如果是可见列,则加入全文搜索范围
                      DataController.Filter.Root.AddItem(Columns[I], foLike, sSearchContent, sSearchContent);
                  end;
                DataController.Filter.Active := True;
              end

解决方案 »

  1.   

    select * from t
    where (a='李' or b='李' or c='李') and (a='王' or b='王' or c='王')
      

  2.   

    select  姓名1||姓名2||姓名3 from 表 
    where 姓名1||姓名2||姓名3 like '%李%' 
    and    姓名1||姓名2||姓名3 like '%王%' 其中||在oracle里表示字符串连接,其它数据库改为相应的符号即可。
      

  3.   

    select  * from 表 
    where 姓名1||姓名2||姓名3 like '%李%' 
    and    姓名1||姓名2||姓名3 like '%王%' 其中||在oracle里表示字符串连接,其它数据库改为相应的符号即可。 
      

  4.   


    这个好象那有点问题。什么问题?
    是不是mssql数据库??
      

  5.   

    SELECT 姓名1,姓名2,姓名3 FROM t1
    WHERE charindex('李', 姓名1+姓名2+姓名3)>0 and charindex('王', 姓名1+姓名2+姓名3)>0
    我试过这个没问题。
      

  6.   


    这个好象那有点问题。什么问题?
    是不是mssql数据库??  不是啊是access 难道不支持?
      

  7.   

    这个确实可以,只是用在access数据库中要用instr()。呵呵谢谢各位。