MySQL - 检查列值(IP)是否出现在多个引用(订单)中

时间:2017-04-07 09:07:00

标签: mysql

这是表结构: (这是一个日志)

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​​erref中。

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

理想情况下,结果会像这样发出:

ORDERREF1 | ORDERREF5 | 192.168.0.1

由于IP出现在多个orderref中,因此它是唯一的结果

3 个答案:

答案 0 :(得分:1)

这应该可以解决问题。这将显示每个具有多个不同ID的

的IP的ID和IP
SELECT GROUP_CONCAT(order_id), IP
FROM MyTable
GROUP BY ip
HAVING COUNT(DISTINCT order_id)>1

答案 1 :(得分:0)

使用以下查询,您将获得带有theri的多个条目订单ID 计数

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

答案 2 :(得分:0)

当我没有数据时很难测试,但这样的事情应该有用

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