不从MySQL中选择重复项

时间:2014-10-30 04:48:45

标签: mysql sql

我有一个DB结构,如:

player1 | player2  | score
Prust   | Val      | 1
Dan     | Prust    | 10
Dan     | Prust    | 5
Prusel  | Prust    | 1

每个人都有一个链接,例如mySite.com/Prust

我正在我的网站上构建搜索功能。

当有人在搜索输入中输入“Pru”时,查询应返回2个玩家,一个用于Prust,一个用于Prusel,因此我可以在弹出框中显示这两个玩家的链接。 (例如显示“我们发现2个类似于输入文本的玩家:Prusel和Prust。”)

而且,因为我有OR语句,我不确定哪个player1或player2列成功用于在数据库中查找记录。

现在,我的查询如下:

SELECT * FROM games WHERE player1 LIKE 'pru' OR player2 LIKE 'pru';

这当然没有实现我想要的......那就是我被困住的地方。

2 个答案:

答案 0 :(得分:1)

如果您对数据进行了正确建模,我会提出疑问,但我相信此查询应该足够了。

select distinct (player1)
from games
where player1 like 'pru%'
union
select distinct (player2)
from games
where player2 like 'pru%';

答案 1 :(得分:0)

您也可以使用GROUP BY关键字

    SELECT player1 
    FROM games
    WHERE player1 like 'pru%'
    GROUP BY player1 

    UNION 

    SELECT player2
    FROM games
    WHERE player2 like 'pru%';
    GROUP BY player2