【问题标题】:PHP - MySQL , Sort clonesPHP - MySQL , 排序克隆
【发布时间】:2012-02-08 20:19:09
【问题描述】:

我有带有表用户的 mysql 数据库。在用户中有列:
id , username , password , ip

我有管理面板,我需要显示具有相同 ip 的用户,像这样

用户1 → 用户2

尼克1 → 尼克2

等等

我如何使用 php.Thanks 来实现,这很紧急。谢谢。

【问题讨论】:

标签: php mysql ip


【解决方案1】:

这是你的 sql 查询。

SELECT username, list.ip FROM users
INNER JOIN (SELECT ip FROM users
GROUP BY ip HAVING count(id) > 1) dup ON list.ip = dup.ip

在 PHP 中使用:

$sql = "SELECT username, list.ip FROM users
INNER JOIN (SELECT ip FROM users
GROUP BY ip HAVING count(id) > 1) dup ON list.ip = dup.ip";

$result = mysql_query($sql,$con);

while($row = mysql_fetch_array($result))
{
    echo $row['username'];
}

更新:

试试这个查询:

$sql = "SELECT username FROM users WHERE ip in 
(SELECT username FROM users GROUP BY ip HAVING count(ip) > 1)";

【讨论】:

  • 感谢您的回答,但 list.ip 和 dup.ip 用于什么?谢谢。
  • 派生表/连接毫无意义。一个简单的select ... group by ... having ... 也可以完成这项工作,而无需连接开销。
  • 我更新了上面的答案,试试那个查询。对于您要显示的内容,我可能有点困惑。
【解决方案2】:

像这样获取您的重复 IP 列表, SELECT COUNT(*) as acount, ip FROM users GROUP BY ip HAVING acount > 1 然后使用这些结果,获取与这些 IP 匹配的所有帐户

【讨论】:

    【解决方案3】:
    select users 
    from users_table 
    where ip ='thisIp'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 2012-12-02
      • 2014-04-26
      • 1970-01-01
      • 2011-07-29
      • 2011-03-02
      • 1970-01-01
      相关资源
      最近更新 更多