Php Mysql联合查询重复行
我在一个交友网站上工作,多亏了这些伟大的答案,我终于提出了这个问题。我完全是个新手:) 这个联合查询的问题是它似乎没有删除重复的条目,我不知道为什么 用户名-是加入网站的人员的姓名 意愿-是关于他们愿意做什么的,是他们个人资料页面的一部分 例如,如果我搜索单词“午餐”(如下面的查询中),查询将在其用户名或个人资料中查找具有午餐“角色的人 但有时,某人的用户名和个人资料中都有“午餐”一词 如何删除这些重复行 我将此查询用于php导航代码 你能帮忙吗Php Mysql联合查询重复行,php,mysql,Php,Mysql,我在一个交友网站上工作,多亏了这些伟大的答案,我终于提出了这个问题。我完全是个新手:) 这个联合查询的问题是它似乎没有删除重复的条目,我不知道为什么 用户名-是加入网站的人员的姓名 意愿-是关于他们愿意做什么的,是他们个人资料页面的一部分 例如,如果我搜索单词“午餐”(如下面的查询中),查询将在其用户名或个人资料中查找具有午餐“角色的人 但有时,某人的用户名和个人资料中都有“午餐”一词 如何删除这些重复行 我将此查询用于php导航代码 你能帮忙吗 result = mysql_query("
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."");
有什么想法吗
谢谢大家! 您的
排序列
保证两个查询之间的行始终是不同的(1对2),因此不会出现重复。解决方法。您可以使用:
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
这是strage,我在实际使用代码时看到了它们,知道为什么吗?请记住,当用户名为时,会出现术语“午餐”和重复行,并在其个人资料中显示为“午餐”,该名称也会显示为“午餐”。所以查询会列出两次。@webmasters如我所说,用户名为“午餐”的行的排序列值为1,配置文件中包含“午餐”的行的排序列值为2。因此,这两行不是完全重复的,也不会通过UNION操作消除重复。Ty非常感谢您将其清除。有没有一种方法可以让用户名“午餐”从查询中删除它的配置文件行,或者类似的东西?基本上能找到解决这个问题的方法吗?