gpt4 book ai didi

php - WHERE sessionId = session 或 IF NOT MATCHING WHERE this is this。数据库管理系统

转载 作者:行者123 更新时间:2023-11-29 13:14:50 25 4
gpt4 key购买 nike

很抱歉标题不好。

我正在尝试创建一个脚本来记录用户每次 session 在我的网站上的查看情况。

但我想记录不使用 cookie 一次而不是多次的机器人,因为它们将具有不同的 session ID,

我当前的代码是

$getRecords = $this->dbCon->prepare("SELECT id FROM vis_records WHERE `time` >= :timeFrom AND sessionId = :sessionId OR ip = :ip");
$getRecords -> bindValue(':timeFrom',time()-(60*30)); // Only Search Records from the last 30 min
$getRecords -> bindValue(':sessionId',self::getSessionId());
$getRecords -> bindValue(':ip',self::getCurIp());

但是该代码的问题是,。

如果 mysql 找到匹配的 sessionId 或 ip,它会给我一个匹配的行。

我想做的是如果mysql找到匹配的sessionid,则返回该行如果Mysql找不到匹配的sessionId,则尝试查找匹配的ip..

可以直接在 mysql 查询中吗?

最佳答案

SELECT id FROM vis_records WHERE `time` >= :timeFrom AND 
sessionId = :sessionId
UNION ALL
SELECT id FROM vis_records WHERE `time` >= :timeFrom AND
ip = :ip AND
NOT EXISTS
(SELECT id FROM vis_records WHERE `time` >= :timeFrom AND
sessionId = :sessionId)

关于php - WHERE sessionId = session 或 IF NOT MATCHING WHERE this is this。数据库管理系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21607534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com