我现在数椐库结构如下
id        keyword       filename
1         a,b,c,d        name1
2         e,f            name2
3         h,i,j,k        name3
我现在在输入框中"text"输入任意字符如:  c,j 用来搜索出name1和name3
我的思想如下:
1.查询出所有的keyword字段的值,并用","连接即:aa={a,b,c,d,e,f,h,i,j,k}
2.然后用split语句读出每一个值即:a b c d e f h i j k 
3.查询出输入框中的每一个字符并用split得其值: bb={c ,j}
然后用循环语句for each str as string in bb
 "sql=select filename from 表名 where str in aa
但是我做到这里的时间,发现问题了.where str 中的str并不是列名啊,所以迷茫了.不知各位看客们有何高招呀?只要说说这钟查询的思想就可以了!多谢.在线等!!!

解决方案 »

  1.   

    string sql = "select filename from 表名 where ";
    string aaa = "c,j";
    string[] bbb = tmp.Split(",".ToCharArray());
    foreach(string tmp in bbb)
      sql += " ','+keyword+',' like '%,"+ tmp +",%' or "if(bbb.Length>0)
      sql = sql.SubString(0,sql.Length-3);//去掉最后的一个or
      

  2.   

    将用户输入框的字符串用split分开,用循环一个一个查数据库,把得到的结果去掉重复的,在显示出来
      

  3.   

    select filename from 表名 where keyword like %+str+%
      

  4.   

    Eddie005写的对,
    第一句稍改
    string sql = "select distinct filename from 表名 where ";
      

  5.   

    呵呵,不好意思,Eddie005写的对,不用改了,