• 实现类似于baidu的那种用空格键的分词查询


    【全文】
     ///
      /// 实现类似于baidu的那种用空格键的分词查询
      ///
      /// 要查询表的字段集合
      /// 要查询的表名
      /// 查询的关键字
      /// 查询的模式
      /// 具体的查询语句
      private string GetSearchWord(string[] tableField ,string tableName ,string strKeyword ,string strSearchMode)
      {
       StringBuilder strCondition = new StringBuilder();
       string [] KeywordArray;
       string strTemp = "";
                strCondition.Append("SELECT ");
       string strWhere ="";
       // 获得要查询表的字段名称
       foreach(string sqlField in tableField)
       {
        strWhere += sqlField + "," ;
       }
       strWhere = strWhere.TrimEnd(new char[]{','});
       strCondition.Append(strWhere + " FROM "+tableName+" WHERE ");
       
       if(strKeyword.IndexOf(',')!=-1)
        KeywordArray=strKeyword.Split(',');
       else
        if(strKeyword.IndexOf('|')!=-1)
        KeywordArray=strKeyword.Split('|');
       else
        KeywordArray=strKeyword.Split(null);
       // 完全匹配模式
       if(strSearchMode == "1")
       {
         strWhere="";
        foreach(string sqlField in tableField)
        {
          strWhere += sqlField + "+";
        }
        strWhere=strWhere.TrimEnd(new char[] {'+'});
        strTemp += strWhere + " like '%"+strKeyword+"%'";
       }
       else
       {
        // 部分匹配模式
        if(strSearchMode=="2")
        {
         strWhere = "";
         foreach(string sqlField in tableField)
         {
          strWhere += sqlField + "+";
         }
         strWhere=strWhere.TrimEnd(new char[] {'+'});
         strTemp += strWhere + " like '";
         strWhere="";
         for (int i=0;i     {
          strWhere+="%"+KeywordArray[i];
         }
         strTemp+=strWhere +"%'";
        }
        // 单词匹配模式
        if(strSearchMode=="3")
        {
         strWhere="";
         foreach(string sqlField in tableField)
         {
          strWhere +=" "+ sqlField + "+";
         }
         strWhere=strWhere.TrimEnd(new char[] {'+'});
      
         string strSqlKeyword="";
         for (int i=0;i     {
          strSqlKeyword+=strWhere+" like" +" '%"+KeywordArray[i]+"%' or";
         }
         strSqlKeyword=strSqlKeyword.TrimEnd(new char[] {'o','r'});
         strTemp +=strSqlKeyword;
        } 
       }
       return strCondition.Append(strTemp).ToString();

      }

    噢耶游戏是中国最大的轻社交游戏开发商,致力于手机页游的研发及推广业务。我们首创性地提出了HTML5游戏中心思路,在第三方App 中嵌入式休闲游戏,为开发者提供了全新的应用内游戏解决方案。
  • 相关阅读:
    源码0603-08-掌握-NSURLSession-上传
    源码0603-05-掌握-大文件下载
    源码0603-03-掌握-NSURLSession
    源码0603-01-了解-大文件下载(NSOutputStream)
    源码0602-10-掌握-文件上传11-了解-获得文件的MIMEType
    源码0602-08-掌握-解压缩
    源码0602-06-掌握-小文件下载-大文件下载
    用JS实现的控制页面前进、后退、停止、刷新以及加入收藏等功能
    java一路走来
    CKEditor3.5.3 JAVA下使用
  • 原文地址:https://www.cnblogs.com/yintian2/p/777282.html
Copyright © 2020-2023  润新知