我正在约会网站上工作,感谢我设法做出这个查询的好答案。我完全是个新手:)
此联合查询的问题在于它似乎没有删除重复的条目,我不知道为什么。
用户名 - 是加入该网站的人的姓名;
意愿 - 关于他们愿意做什么,是他们个人资料页面的一部分。
例如,如果我搜索单词“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."");
有什么想法吗?
谢谢!
答案 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