MySQL从行组中选择第一个实例

时间:2014-01-09 13:28:43

标签: php mysql count group-by

我有一个存储用户访问的表格,如下所示:

visits (id, pageURL, date, ip)

每次用户访问页面时,都会创建一个新行,因此每个用户都会有许多行通过其IP链接在一起。

我正在尝试提出一个查询,只要pageURL是user.html,它就会在第一次访问网站时仅选择每个用户登陆的第一行。

这是我无法弄清楚的,我可以轻松地使用PHP和几个MySQL查询来完成它,但如果只有一个查询可以做得更快。

3 个答案:

答案 0 :(得分:0)

我只是想到了

之类的东西
SELECT * FROM visits WHERE pageURL='user.html' GROUP BY ip SORT BY ip, date

答案 1 :(得分:0)

SELECT pageURL,date,ip 
FROM visits v1
WHERE id = (SELECT MIN(id) FROM visits v2 WHERE v2.ip = v1.ip) 
  AND pageURL='user.html' -- dont know if necessary

http://sqlfiddle.com/#!2/9b669/5

答案 2 :(得分:-1)

select * from visits group by ip having pageURL='user.html' order by id,date asc limit 1