gpt4 book ai didi

php - mysql 我不明白这里的 if 含义

转载 作者:行者123 更新时间:2023-11-29 07:44:50 26 4
gpt4 key购买 nike

 $sql = "select u.Id, u.username, u.email, (NOW()-u.authenticationTime) as authenticateTimeDifference, u.IP, 
f.providerId, f.requestId, f.status, u.port
from friends f
left join users u on
u.Id = if ( f.providerId = ".$userId.", f.requestId, f.providerId )
where (f.providerId = ".$userId." and f.status=".USER_APPROVED.") or
f.requestId = ".$userId." ORDER BY u.username ASC";

我不明白这里的 if 含义,与 where 一起使用

// providerId and requestId is Id of  a friend pair,
// providerId is the Id of making first friend request
// requestId is the Id of the friend approved the friend request made by providerId

// fetching friends,
// left join expression is a bit different,
// it is required to fetch the friend, not the users itself

谁能帮我解释一下吗?谢谢

最佳答案

仅当条件 f.providerId = ".$userId."时,您只需通过 requestId 进行 friend 用户之间的加入 是真的。如果没有,则通过providerId进行连接。

我看到 $userId 是您传递给查询的 php 变量,因此也许想法是检查事件用户是否是提供者,然后获取与请求关联的行而不是 Friends 表中的提供者。

这里是关于 If 函数的文档:http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html#function_if

关于php - mysql 我不明白这里的 if 含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28078909/

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