在我的查询中我想添加另一个条件
if((select ShowMan from preferences where `UserId`='92') == true )
then users.gender !='female'
这是我的完整查询
SELECT *
FROM `users`
WHERE users.id != '92' AND
users.id NOT IN (SELECT matched_user_id
FROM `user_matchs`
WHERE user_id = '92'
)
and
users.id NOT IN (SELECT user_id
FROM `user_matchs`
WHERE matched_user_id = '92'
AND status = 'friend'
)
and if((select ShowMan from preferences where `UserId`='92') == true )
then users.gender !='female'
我的逻辑是ifuser 92 ShowMan值为true然后添加一个条件users.gender !='female' 如果 ShowMan 值为 false,则添加条件 users.gender !='male'
最佳答案
更改此工作的最后一部分是否有效:
and ((NOT (select ShowMan from preferences where `UserId`='92')) OR (users.gender !='female'))
或完整查询
SELECT 'users'.*
FROM `users`
JOIN preferences ON `UserID` = users.id
WHERE users.id != '92' AND
users.id NOT IN (SELECT matched_user_id
FROM `user_matchs`
WHERE user_id = users.id
)
AND users.id NOT IN (SELECT user_id
FROM `user_matchs`
WHERE matched_user_id = users.id
AND status = 'friend'
)
AND ((NOT `preferences`.`ShowMan`) OR (users.gender !='female'))
关于php - mysql 查询是否无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31288588/