求高手写SQL查询语句.(50分)

  • 主题发起人 主题发起人 jjid
  • 开始时间 开始时间
J

jjid

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一数据表含

|----------------
| A B C D E 五个要素(字段)
用户输入
a b c d e
要求写找出与用户输入的a b c d e最相似的记录,当然,
能够按程度排序最好.




 
你想要怎么个相似法?

再讲详细点吧。
 
select * from test.db
where A like a and
exists
select * from test.db
where B like b and
exists
********
 
select * from testdb
Where A like %%a%% or
B like %%b%% or
C like %%C%%
.....
假设都为字符型
 
这不是一条语句能办到的
不如用存储过程,从第一个要素依次向后取字符,经多次取并且长度变化,取得特征值,将收集到的数据进行排序,特征值最大的为你的结果
 
多谢诸位.

这里的字段有字符型和数字型.
问题的难点在于:
不是在与A相似的子集中找与B相似的子子集,在找与与C相似的
子子子集....

LSS君的思路与我的一个想法接近;

abcde无论字符型和数字型都格式化成字符型.构成一个字符串.再与
格式化的ABCDE比较,但我没有找到一个合适的字符比较函数.


 
jjid,我认为你的思路很不错,不过如果五个字段中有个很大的话,还是
会有问题(我想)
我的想法是这样,其实也是顺着你的思路,在数据库中增加一个字段,
这个字段就是 A B C D E的字符窜拼接,查询时,把用户输入的
a b c d e也拼接成字符窜,然后,在数据库中用gotonearest(大概如此),
查找
 
呵呵, 这样的方法要做个引擎才行, 很复杂的, 不是三两句可以解决的.
现成的可以用ibm的netadata.
 
如果你在另一表中的数据也在五个字段中,
在匹配查询中岂不是用不上索引,那么用户
只好在查询时出去旅游了。
 
多人接受答案了。
 
后退
顶部