通过方法处理后的字符串为 "北京,京小,小饭,饭锅,锅餐,餐厅,厅电,电话,"
按照这样的关键字再到数据库中去搜索,应该不会落下任何匹配的数据了
不多说 在看看存储过程怎么处理
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 这个就是一个通用的分页存储过程 百度一下到处都有 这就不贴上来了
联系客服