首页 新闻 会员 周边

这种查询问题怎么处理?

0
[待解决问题]

比如表A. 里有字段 Col 用来存关键字,关键字之间用空格隔开,每个关键字要唯一。 

 

我在程序录入的时候要检验关键字是否已被使用。

 

比如数据表col字段存存在   ".net C#"

 我再录入"C#" 或是 "java C#" 就提示关键字已被使用。

如果sql中直接用 like 来查询也会 有问题。如“java C# C和C#”

 这样查询就不正确了

用linq 如何快速作验证?

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2013-10-20 13:37
< >
分享
所有回答(2)
0

建议添加一个表A的子表表B,表A和表B形成一对多的关系,表B里每条记录存一个关键字,如果在原来表A里有多个关键字的,如".net C#",就存为表B的两条记录".net"和"C#",这样匹配时就不会有问题,而且速度上还会比原有方案更快。

如果一定要用原来的方案的,可以Col like '% C#' or Col like '% C# %' or Col like 'C# %'(注意空格),不过需要保证关键字中间不会存在空格

诶碧司 | 园豆:1912 (小虾三级) | 2013-10-20 22:30
0

可以考虑从数据库这一块入手,存储过程里做做如下验证,select   XX  from  table  where  XX in  (select  关键字 from  table)

 

大楚打码人 | 园豆:4313 (老鸟四级) | 2013-10-30 16:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册