2017-04-07 52 views
0

这是表结构: (这是一个日志)MySQL的 - 检查列值(IP)出现在多个引用(订单)

order id, IP, text, timestamp 

我的数据是这样的:

ORDERREF1 | 192.168.0.1 | Some text about order | TIMESTAMP 

ORDERREF1 | 192.168.0.1 | Some text about order | TIMESTAMP 

ORDERREF2 | 192.168.0.2 | Some text about order | TIMESTAMP 

ORDERREF3 | 192.168.0.3 | Some text about order | TIMESTAMP 

ORDERREF5 | 192.168.0.1 | Some text about order | TIMESTAMP 

ORDERREF3 | 192.168.0.3 | Some text about order | TIMESTAMP 

ORDERREF4 | 192.168.0.4 | Some text about order | TIMESTAMP 

ORDERREF2 | 192.168.0.2 | Some text about order | TIMESTAMP 

从上面的数据可以看出,一个IP出现在两个ord​​errefs中。

我需要一个查询,告诉我在MULTIPLE orderid中出现了什么IP以及它们引用了哪些orderid。

所以结果非常发出这样的:

ORDERREF1 | ORDERREF5 | 192.168.0.1 

由于知识产权在多个orderref的其唯一的结果出现使用下面的查询,你会得到多个条目

回答

1

这应该有所斩断。这将显示ID和有每个IP的IP的一个以上的不同的ID的

SELECT GROUP_CONCAT(order_id), IP 
FROM MyTable 
GROUP BY ip 
HAVING COUNT(DISTINCT order_id)>1 
+0

我编辑了我的原始问题,并提供了有关需要的结果请求的其他详细信息 –

+0

@JamieEde我已更新我的答案 – Shogunivar

0

订单ID与theri 计数

select *,count(*) as count,group_concat(order_id) 
from table_name 
group by ip 
having count(*) >1 
+0

我已经编辑了我原始问题与需要的结果请求的其他详细信息 –

0

很难对其进行测试时,我没有这个数据,但这样的事情应该工作

select ip, order_id, 
from table_name 
group by ip, order_id 
having count(DISTINCT order_id) >1 
+0

我编辑了我的原始问题,并提供了有关需要的结果请求的其他详细信息 –