打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关键字检索,找到所有数据
 using System.Linq;
2 using Core.Common;
3 using System.Web;
4 using System.Text.RegularExpressions;
5
6 namespace Core.Helper
7 {
8     public class KeySearch
9     {
10         private static int _keyCode = 2;//关键字最小组合字数
11        
12         //过滤关键字
13         private static string[] ReplaceKey ={18                                                "",
19                                                "",
20                                                "",
21                                                "",
22                                                "",
23                                                "地方",
24                                                " "
25                                            };
26         /// <summary>
27         /// 搜索关键字组合方法
28         /// </summary>
29         /// <param name="keyword"></param>
30         /// <returns></returns>
31         public static string KeySearchSpan(string keyword)
32         {
33             string reStr = "";
34             string copyStr = keyword;
35             if (copyStr.Length < _keyCode)
36             {
37                 reStr = copyStr + ",";
38             }
39             else
40             {
41                 var query = from data in ReplaceKey
42                             select data;
43                 foreach(var s in query)
44                 {
45                     copyStr = Regex.Replace(copyStr, s, "", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline);
46                 }
47                 int count = copyStr.Length - _keyCode + 1;
48                 for (int i = 0; i < count; i++)
49                 {
50                     reStr += copyStr.Substring(i, _keyCode) + ",";
51                 }
52             }
53             return reStr;
54         }
55     }
56 }

通过方法处理后的字符串为 "北京,京小,小饭,饭锅,锅餐,餐厅,厅电,电话,"

按照这样的关键字再到数据库中去搜索,应该不会落下任何匹配的数据了

不多说 在看看存储过程怎么处理

 1 -- ============================================= 2 -- 作者:huangtao 3 -- 功能描述: 电话搜索列表 4 -- 当前版本: 001.001.001  5 -- 修改描述: 1. 6 --             2. 7 -- ============================================= 8 ALTER PROCEDURE [dbo].[PH_Tel_SearchList_S] 9 @SITEID         INT,             --城市ID10 @KEYWORDS        VARCHAR(300),     --模糊查询条件 以,号分割11 @CURPAGE        INT,             --当前页          12 @PAGESIZE       INT,             --分页大小13 @COUNT            INT  OUTPUT      --总条数14 AS15 BEGIN16     DECLARE @POS INT --字符串分割个数17     DECLARE @LEN INT --单次字符长度18     DECLARE @TEMP VARCHAR(10) --单次字符内容19     DECLARE @WHERE VARCHAR(2000)  --拼接的SQL语句条件20     DECLARE @FIELDS VARCHAR(1000)  --字段名21     SET @POS=CHARINDEX(',',@KEYWORDS,0)22     SET @WHERE=' SITEID='+CAST(@SITEID AS VARCHAR(10)) + ' AND CCOOCHK=1 AND ISDEL=0 AND ('23     WHILE(@POS>0)24     BEGIN25         SET @TEMP=SUBSTRING(@KEYWORDS,0,@POS)26         SET @LEN=LEN(@TEMP)27         SET @WHERE=@WHERE+'(TELNAME+TELINFO+TELINFO1+SPINFO+KEYWORD) LIKE ''%' +@TEMP+'%'' '28         SET @KEYWORDS=STUFF(@KEYWORDS,1,@LEN+1,'')29         SET @POS=CHARINDEX(',',@KEYWORDS,0)30         IF @POS>031             SET @WHERE=@WHERE+' OR '32     END33     SET @WHERE=@WHERE+')'    34     SET @FIELDS='ID,TELNAME,TELINFO,TELINFO1,SPINFO,KEYWORD,ISTJ,ISYP,STATE,ISSTATE,UPTIME'35     EXEC PAGE_NEW 'YP_DIR',@FIELDS,@WHERE,'ISTJ DESC,UPTIME DESC ',@PAGESIZE,@CURPAGE, @COUNT OUT 36 END

LZ的需求是电话库的搜索 任何用户输入相关数据都拿出

最后面 EXEC PAGE_NEW 这个就是一个通用的分页存储过程 百度一下到处都有 这就不贴上来了

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Android 关键字高亮变色
Python——关键字(六)
PostgreSQL中二进制转换的例子
常见查找算法(Java实现)
QT中foreach()的使用方法
畅享聊C语言基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服