Mysql联合查询重复行

时间:2011-12-20 22:03:15

标签: php mysql

我正在约会网站上工作,感谢我设法做出这个查询的好答案。我完全是个新手:)

此联合查询的问题在于它似乎没有删除重复的条目,我不知道为什么

用户名 - 是加入该网站的人的姓名;

意愿 - 关于他们愿意做什么,是他们个人资料页面的一部分。

例如,如果我搜索单词“lunch”(如下面的查询中所示),查询会查找其中包含“lunch”字符的人用户名意愿个人资料。

但有时,某人在用户名中有“午餐”这个词,并且在其意愿档案中。

如何删除这些重复的行?

我将此查询用于php导航代码。

你能帮忙吗?

result = mysql_query("

(SELECT 1 as sort_col,username,pic0 FROM ".$table." WHERE username IS NOT NULL AND username LIKE '%lunch%') 

UNION 

(SELECT 2 as sort_col,username,pic0 FROM ".$table." WHERE username IS NOT NULL AND age BETWEEN '28' AND '45' AND willingness LIKE '%lunch%' )

ORDER BY sort_col 

LIMIT ".$offset.", ".$rowsperpage."");

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您的sort_col保证两个查询之间的行始终是不同的(1对2),因此不会出现重复。

答案 1 :(得分:1)

解决方法。你可以使用:

SELECT username, pic0 
FROM ".$table." 
WHERE ( username LIKE '%lunch%' ) 
   OR ( username IS NOT NULL 
      AND age BETWEEN 28 AND 45 
      AND willingness LIKE '%lunch%' 
      )
ORDER BY ( username LIKE '%lunch%' ) DESC