我想知道注册用户的ip是否存在于最近30条记录中。这将帮助我防止多次注册。我在 mysql 中尝试执行此操作时遇到困难。这是我目前所处的位置:
检查所有记录中多个 ip 的旧查询:
$same_ip_count = mysql_num_rows(mysql_query("SELECT * FROM login_users WHERE ip='".$ip."'"));
失败的新代码:
$same_ip_count = mysql_num_rows(mysql_query(
"SELECT 'user_id'
FROM (
SELECT *
FROM login_users
ORDER BY user_id DESC
LIMIT 30
) AS t
WHERE t.ip = '".$ip."'"));
对 sql 有点陌生,所以此时任何建议都会很棒。
编辑:
需要明确的是 - 我只想搜索最后 30 条记录。我不想搜索所有记录,然后将其限制为 30 条。
最佳答案
首先使用子查询获取最后 30 项。然后,您可以从 IP 匹配的 30 个列表中进行选择。
Select * From
(SELECT *
FROM login_users
ORDER BY registration_date DESC
LIMIT 30) a
WHERE a.ip = '".$ip."'
关于php - mysql - 查明输入是否存在于最后 30 条记录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15881964/