找关键字的SQL查询,有点难度

bing475879749 2010-05-07 09:03:38
我在数据库里有


表:class

字段:
id qy

1 广州双一乳胶

2 湖南金博科技有限责任公司



现在需求是:

当我输入“广州广橡集团有限公司双一乳胶厂”时能在SQL里查询到“广州双一乳胶”

当我输入“湖南科技” 能在SQL里查询到“湖南金博科技有限责任公司”


不知道我说明白没有
...全文
779 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wpf1523 2012-10-11
  • 打赏
  • 举报
回复
5楼和8楼的真是高手啊
ImprintMe 2010-10-23
  • 打赏
  • 举报
回复
5楼的,的确很牛啊!顶!!纠结我好长时间的相关搜索,尽被你如此精短的代码就可以解决,牛啊!!!
songeddy 2010-08-16
  • 打赏
  • 举报
回复
lucene 索引
cftzh 2010-06-19
  • 打赏
  • 举报
回复
踩个脚印,
宇峰科技 2010-06-18
  • 打赏
  • 举报
回复
学习,建议百度开放一个这个源码吧,哈哈。。。。
流氓兔 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xys_777 的回复:]
SQL code
IF @Step<>0 AND @Step>=len(@min)/2
SET @r=1
RETURN @r

如果在比较长的字符串里找到含有短的字符串中一半的字符个数,就表示可以匹配

lz可以严格点

SQL code
IF @Step=len(@min)-- 干脆找出全部包含的
SET @r=1
RET……
[/Quote]
( ^_^ )不错嘛
永生天地 2010-05-07
  • 打赏
  • 举报
回复
IF @Step<>0 AND @Step>=len(@min)/2
SET @r=1
RETURN @r

如果在比较长的字符串里找到含有短的字符串中一半的字符个数,就表示可以匹配

lz可以严格点
IF  @Step=len(@min)-- 干脆找出全部包含的
SET @r=1
RETURN @r

永生天地 2010-05-07
  • 打赏
  • 举报
回复
这个比较强,不知道很接近得数据效果怎么样
bing475879749 2010-05-07
  • 打赏
  • 举报
回复
5楼太谢谢你了,你的代码看不懂,我慢慢消化
chuifengde 2010-05-07
  • 打赏
  • 举报
回复
CREATE TABLE atest(id INT,   qy varchar(100))
INSERT atest select 1 ,'广州双一乳胶'
UNION ALL SELECT 2 ,'湖南金博科技有限责任公司'
GO
CREATE FUNCTION GetSS(@p varchar(100),@q varchar(100))
RETURNS BIT
AS
BEGIN
DECLARE @min varchar(100),@max varchar(100)
DECLARE @I INT,@Step INT
DECLARE @r BIT
SET @r=0

SELECT @I=1,@Step=0
IF len(@p)<len(@q)
SELECT @max=@q,@min=@p
ELSE
SELECT @max=@p,@min=@q

WHILE @I<=len(@min)
BEGIN
IF charindex(substring(@min,@I,1),@max)>0
SET @Step=@Step+1
SET @I=@I+1
END
IF @Step<>0 AND @Step>=len(@min)/2
SET @r=1
RETURN @r
END
GO
DECLARE @a varchar(100)
SET @a='湖南科技'
SELECT * FROM atest WHERE dbo.getss(@a,qy)=1
SET @a='广州广橡集团有限公司双一乳胶厂'
SELECT * FROM atest WHERE dbo.getss(@a,qy)=1

--result
/*id qy
----------- ------------------------------
2 湖南金博科技有限责任公司

(所影响的行数为 1 行)

id qy
----------- ------------------------------
1 广州双一乳胶

(所影响的行数为 1 行)

*/
htl258_Tony 2010-05-07
  • 打赏
  • 举报
回复
bing475879749 2010-05-07
  • 打赏
  • 举报
回复
呵呵,我是不会
guguda2008 2010-05-07
  • 打赏
  • 举报
回复
分词,不好做
htl258_Tony 2010-05-07
  • 打赏
  • 举报
回复
明白是明白了,这个确实不简单,涉及分词技术。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧