我有一个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'
;
这当然没有实现我想要的......那就是我被困住的地方。
答案 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