在数据库里一列,保存关键字的。在这列中,每个关键字用“,”隔开。如:关键字1,关键字2,关键字3,关键字4
如果单搜一个关键字,很好解决,like一个OK了。
如果一下搜多个关键字,如何解决?按匹配最多少排序。
如果搜索“关键字1,关键字2”,匹配为2,
搜索“关键字1,关键字5”,匹配为1;
想写个函数,进行匹配一下,但我的MYSQL技术有限,唉。
还要对关键字搜索多少进行排序,这个好解决。这个好解决,建个表,搜索一次,关键字数量加1.
我用的是MYSQL。
谢谢!
119 个解决方案
#1
不知道说清了没有~
#2
up
#3
帮顶
#4
顶一下先
#5
mysql没用过
#6
看懂了题目
不过不会玩数据库,帮顶
不过不会玩数据库,帮顶
#7
只能帮顶了
#8
帮顶
#9
帮顶..关注
#10
不是特别清楚
#11
不懂
帮等
帮等
#12
看来我只能顶了
#13
不会,帮顶
#14
#15
#16
哪个不清楚?
#17
帮顶,关注......
#18
顶可以,等嘛,我自己来~
#19
我承诺:不信谣,不传谣,不造谣!
#20
我承诺:不信谣,不传谣,不造谣!
#21
帮顶
#22
如果解决不了 程序中处理吧
#23
不知道MYSQL可不可以用 IN
SQL2000 可以这用
关键字 IN(关键字1,关键字2...)
SQL2000 可以这用
关键字 IN(关键字1,关键字2...)
#24
可以写个存储过程,用IF ELSE 做判断就可以了。
#25
顺便接分升级
#26
多给点分快生四个三角了。呵呵。问题再问。这个比较容易实现。
#27
顶一下先
#28
#29
河马来了啊,昨天怎么生病了?
#30
表述不清楚!
#31
与SQl有什么大的区别?
#32
ss
#33
不懂
#34
帮顶
#35
帮顶..关注
#36
我想你问的这个问题属于类似百度搜索技术
#37
select * from tab where a1 like M and a2 like M and a3 like M
#38
哦。
看来小学语文得重修一下了~
#39
差不多吧,呵
#40
#41
这种方法恐怕不行吧。
三个关键字 a1,a2,a3,如果匹配两个,这样是搜不出来的。
#42
http://lucene.apache.org/java/docs/index.html
这个是java开源的搜索引擎技术 可以 看看!
#43
谢谢42楼的xql80329
我去看看~
我去看看~
#44
晕,E文的啊~
得把字典翻出来~
得把字典翻出来~
#45
这样可以不。。。
(case when a1 like M then 1 else 0 end) + (case when a2 like M then 1 else 0 end) + (case when a3 like M then 1 else 0 end)[img=http://p.blog.csdn.net/images/p_blog_csdn_net/zswang/%E6%89%AE%E9%85%B7.gif]图[/img]
#46
帮顶
#47
貌似可以。
但把关键字写成这样的SQL语句是个问题
#48
恩,是英文的.
装个金山词霸 也不难看懂!
#49
这个不能从根本上解决问题
#50
#1
不知道说清了没有~
#2
up
#3
帮顶
#4
顶一下先
#5
mysql没用过
#6
看懂了题目
不过不会玩数据库,帮顶
不过不会玩数据库,帮顶
#7
只能帮顶了
#8
帮顶
#9
帮顶..关注
#10
不是特别清楚
#11
不懂
帮等
帮等
#12
看来我只能顶了
#13
不会,帮顶
#14
#15
#16
哪个不清楚?
#17
帮顶,关注......
#18
顶可以,等嘛,我自己来~
#19
我承诺:不信谣,不传谣,不造谣!
#20
我承诺:不信谣,不传谣,不造谣!
#21
帮顶
#22
如果解决不了 程序中处理吧
#23
不知道MYSQL可不可以用 IN
SQL2000 可以这用
关键字 IN(关键字1,关键字2...)
SQL2000 可以这用
关键字 IN(关键字1,关键字2...)
#24
可以写个存储过程,用IF ELSE 做判断就可以了。
#25
顺便接分升级
#26
多给点分快生四个三角了。呵呵。问题再问。这个比较容易实现。
#27
顶一下先
#28
#29
河马来了啊,昨天怎么生病了?
#30
表述不清楚!
#31
与SQl有什么大的区别?
#32
ss
#33
不懂
#34
帮顶
#35
帮顶..关注
#36
我想你问的这个问题属于类似百度搜索技术
#37
select * from tab where a1 like M and a2 like M and a3 like M
#38
哦。
看来小学语文得重修一下了~
#39
差不多吧,呵
#40
#41
这种方法恐怕不行吧。
三个关键字 a1,a2,a3,如果匹配两个,这样是搜不出来的。
#42
http://lucene.apache.org/java/docs/index.html
这个是java开源的搜索引擎技术 可以 看看!
#43
谢谢42楼的xql80329
我去看看~
我去看看~
#44
晕,E文的啊~
得把字典翻出来~
得把字典翻出来~
#45
这样可以不。。。
(case when a1 like M then 1 else 0 end) + (case when a2 like M then 1 else 0 end) + (case when a3 like M then 1 else 0 end)[img=http://p.blog.csdn.net/images/p_blog_csdn_net/zswang/%E6%89%AE%E9%85%B7.gif]图[/img]
#46
帮顶
#47
貌似可以。
但把关键字写成这样的SQL语句是个问题
#48
恩,是英文的.
装个金山词霸 也不难看懂!
#49
这个不能从根本上解决问题