• 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/
    感谢您点【推荐】 ,祝您事业有成,生活愉快,健康美丽。
  • 相关阅读:
    【如何使用翻译工具翻译网页】英语没过关的可以参考下。
    HTTP 请求报文和响应报文
    VIM+ctags+cscope用法
    Ubuntu下命令行访问网站
    mini_httpd的安装和配置
    堆排序(代码2)
    插入排序
    堆排序(代码1)
    快速排序
    Python中的控制流
  • 原文地址:https://www.cnblogs.com/tandyshen/p/keywordssearch.html
Copyright © 2020-2023  润新知