zoukankan      html  css  js  c++  java
  • asp.net关键字模糊查询(类似于各大网站搜索功能)

      今天与大家分享一个小算法,我是用C#写的,其他语言也一样换下语法就行了。以空格断开关键字模糊查询,类似于各大网站的搜索功能。我想的就是一个拼接sql语句的过程。都是以空格断开关键字,分两种情况,一种是以空格断开是”且”的关系,另一种是以空格断开是”或”的关系。其实也很简单,直接上代码吧。

      关键字"或"的关系代码:

    /// <summary>
        /// 关键字"或"的关系
        /// </summary>
        /// <returns></returns>
        public string OrKeyWords()
        {
            string sql = "select username from usertable where 1=1";
            string txtkeyword = txttitle.Text.Trim();
            if (txtkeyword == "")
            {
                ClientScript.RegisterStartupScript(typeof(Page), "aa", "alert('请输入关键字!')", true);
                return;
            }
            else
            {            
                int len = txtkeyword.Length;
                int n = 0;
                string strsql = " and (";
                string strkey = "";
                for (int i = 0; i < len; i++)
                {
                    if (txtkeyword[i].ToString() == " ")
                    {
                        if (i > 0)
                        {
                            if (txtkeyword[i - 1].ToString() != " ")
                            {
                                n++;
                                strsql += "charindex('" + strkey + "',username)>0 or ";
                                strkey = "";
                            }
                        }
                    }
                    else
                    {
                        strkey += txtkeyword[i].ToString();
                    }
                }
                if (n == 0)
                {
                    sql += " and charindex('" + txtkeyword + "',username)>0 order by id desc";
                }
                else
                {
                    strsql += "charindex('" + strkey + "',username)>0)";
                    sql += "" + strsql + " order by id desc";
                }
                //拼接完成
                return sql;
            }
        }

      关键字"且"的关系代码:

    /// <summary>
        /// 关键字"且"的关系
        /// </summary>
        /// <returns></returns>
        public string AndKeyWords()
        {
            string sql = "select username from usertable where 1=1";
            string txtkeyword = txttitle.Text.Trim();
            if (ttxtkeyword == "")
            {
                ClientScript.RegisterStartupScript(typeof(Page), "aa", "alert('请输入关键字!')", true);
                return;
            }
            else
            {            
                int len = txtkeyword.Length;
                int n = 0;
                string strsql = " and ";
                string strkey = "";
                for (int i = 0; i < len; i++)
                {
                    if (txtkeyword[i].ToString() == " ")
                    {
                        if (i > 0)
                        {
                            if (txtkeyword[i - 1].ToString() != " ")
                            {
                                n++;
                                strsql += "charindex('" + strkey + "',username)>0 and ";
                                strkey = "";
                            }
                        }
                    }
                    else
                    {
                        strkey += txtkeyword[i].ToString();
                    }
                }
                if (n == 0)
                {
                    sql += " and charindex('" + txtkeyword + "',username)>0 order by id desc";
                }
                else
                {
                    strsql += "charindex('" + strkey + "',username)>0";
                    sql += "" + strsql + " order by id desc";
                }
                //拼接完成
                return sql;
            }
        }

      代码很简单,就不解释了哈,我自己记录一下,也希望对大家有帮助。

      PS:Tandy Tang祝大家写代码写的愉快!

    作者:大神神风
    出处:http://www.cnblogs.com/tandyshen/
    感谢您点【推荐】 ,祝您事业有成,生活愉快,健康美丽。
  • 相关阅读:
    产生渐变色的view
    新建一个去除storyboard的项目
    绘制波形图
    文件系统扫描的工具类
    如何动态绘制时钟
    Xcode插件管理器Alcatraz的使用
    UITableView的headerView展开缩放动画
    POPSpring动画参数详解
    Java枚举类使用和总结
    Java判断不为空的工具类总结
  • 原文地址:https://www.cnblogs.com/tandyshen/p/keywordssearch.html
Copyright © 2011-2022 走看看