放100分提问,关键字 搜索,分词,and 查询

wwonion 2007-09-06 04:24:27
如果把一篇文章用分词函数 分成很多个单一的词组,记录到一个表中
结构如下
ID 词 文章ID
---------------------
1 分词1 1
2 分词2 1
3 分词1 2
4 分词3 2
N ......

现在要用SQL语句把 同一文章中包含 分词1 AND 分词2 的 文章ID取得不重复
注意 这样是错误的 Select DISTINCT 文章ID FORM TABLE_NAME WHERE 词='分词1' or 词='分词2'

请问这样的SQL语句要如何写 ??
...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_he 2007-09-07
  • 打赏
  • 举报
回复
SELECT 文章id
FROM TABLE_NAME
WHERE 词 IN ("分词1", "分词2")
GROUP BY 文章id
HAVING Count(*) >= 2
接分,想法居然一樣.......
ayooxi 2007-09-06
  • 打赏
  • 举报
回复
嘿嘿,和“伴水清清” 想的一样,呵呵
dobear_0922 2007-09-06
  • 打赏
  • 举报
回复
接分,thanks!
ayooxi 2007-09-06
  • 打赏
  • 举报
回复
select aid from tb1 where word in ('word1','word2') group by aid having count(aid) > 1
王集鹄 2007-09-06
  • 打赏
  • 举报
回复
SELECT 文章id
FROM TABLE_NAME
WHERE 词 IN ("分词1", "分词2")
GROUP BY 文章id
HAVING Count(*) >= 2
wwonion 2007-09-06
  • 打赏
  • 举报
回复
问题解决了


SELECT DISTINCT T1.wid FROM (SELECT wid FROM TABLE1 WHERE c = 'a') T1
INNER JOIN (SELECT wID FROM TABLE1 WHERE c = 'b') T2 ON T1.wid = T2.wID
INNER JOIN (SELECT wID FROM TABLE1 WHERE c = 'e') T3 ON T1.wid = T3.wID

另一种

SELECT wid
FROM Table1
WHERE (c IN ('a', 'b', 'e'))
GROUP BY wid
HAVING (COUNT(DISTINCT c) = 3)

id c wid
-----------------------------
1 a 1
2 b 1
3 b 2
4 c 2
5 d 2
6 e 1
QuinsonYue 2007-09-06
  • 打赏
  • 举报
回复
楼主要得到什么数据 能不能说清楚点
amandag 2007-09-06
  • 打赏
  • 举报
回复
Select distinct 文章ID
from test
WHERE 词='分词1' or 词='分词2'

测试,可以出结果,但楼主的题意是否能清楚些

文章ID
-----------
1
2

(2 行受影响)
ojekleen 2007-09-06
  • 打赏
  • 举报
回复
用全文索引,SQL帮你分好词了。
wwonion 2007-09-06
  • 打赏
  • 举报
回复
显然楼上的没仔细看帖子内容!
thordon 2007-09-06
  • 打赏
  • 举报
回复

SELECT 词, 文章ID from table_Name group by 词 ,文章ID

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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