恩可以! 现在解决了! 在网上查了一下用DISTINCT和DISTINCTROW都不行 可以用GROUP by cdb_threads.subject 谢谢楼上的兄弟!!
DISTINCT 只有全部select部分的相同才会被去掉,不是标题相同就去掉.你用group by cdb_threads.subject 吧
估计你这个比较难实现,因为你除了取出标题以外,还要取出其他的字段,因为DISTINCT根据你所有取出字段来取唯一。用group by 也只能取出group by 后面出现的字段。如果你在group by 后面把你要取出的字段都写上去subject还是会有重复的。不知道你碰到标题相同的纪录,根据什么规则取舍的。我这里写一个供参考(碰到标题相同的纪录,根据取出cdb_threads.fid最小的那个): SELECT cdb_threads.subject, MIN(cdb_threads.fid) AS titleid FROM cdb_threads,cdb_forums WHERE cdb_threads.fid in (17,37,46,11,45,39,38,47,35,36) And cdb_threads.subject in ($row[0]); And cdb_forums.fid = cdb_threads.fid And length(cdb_threads.subject)>10 GROUP by cdb_threads.subject ORDER BY cdb_threads.dateline DESC LIMIT 0,14 然后根据取得的titleid去检索出相应的记录。
现在解决了!
在网上查了一下用DISTINCT和DISTINCTROW都不行
可以用GROUP by cdb_threads.subject
谢谢楼上的兄弟!!
SELECT cdb_threads.subject,
MIN(cdb_threads.fid) AS titleid
FROM cdb_threads,cdb_forums
WHERE cdb_threads.fid in (17,37,46,11,45,39,38,47,35,36)
And cdb_threads.subject in ($row[0]);
And cdb_forums.fid = cdb_threads.fid
And length(cdb_threads.subject)>10
GROUP by cdb_threads.subject
ORDER BY cdb_threads.dateline DESC LIMIT 0,14
然后根据取得的titleid去检索出相应的记录。