php - Mysql查询和条件where子句

标签 php mysql conditional where-clause

使用 PHP 和 MySQL,我试图获取涉及实际用户的所有私有(private)聊天。 为此,我有一个名为“rooms”(id、id_initiate_user、id_target_user)的表和另一个名为“users”(id_pseudo、avatar)的表。 如果实际用户是聊天室的发起用户,我想从目标用户那里得到头像和伪装,如果实际用户是那个房间的目标用户,我想从发起者那里得到头像和伪装用户(无论如何,我想要其他成员的头像和伪造)。

我想我的查询中需要一个条件,但我真的不知道如何管理它(一整天都在谷歌上搜索)。

这是我的查询(逻辑在那里,但语法明显错误:

$user_id=$_SESSION['user_id'];

$res = @mysql_query("
SELECT rooms.id, rooms.id_initiate_user, rooms.id_target_user, rooms.pv, users.id, users.pseudo, users.avatar 
FROM rooms, users 
WHERE 
(
    (rooms.id_initiate_user='$user_id' OR rooms.id_target_user='$user_id') 
    AND  
    (
        IF (rooms.id_initiate_user='$user_id')
        THEN rooms.id_target_user=users.id
        ELSE rooms.id_initiate_user=users.id;
        END IF;
    )
) ORDER BY rooms.id ASC");

我在这里阅读了很多关于“有条件的地方”的问题,但没有一个解决了我的问题。 感谢您的帮助。

最佳答案

你不能做这样的事情吗:

WHERE 
(
    (
        rooms.id_initiate_user='$user_id'
        AND rooms.id_target_user=users.id
    )
    OR
    (
        rooms.id_target_user='$user_id'
        AND rooms.id_initiate_user=users.id
    )
) 

关于php - Mysql查询和条件where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044190/

相关文章:

javascript - 为什么 Javascript `if...else if` 不以 `else` 结尾?

ant - 如果满足两个条件,则执行 Ant 任务

php - 自 PHP 8.0 以来,是否有将抛出 TypeError 异常的内置 PHP 函数的完整列表?

php - 无法让委托(delegate)方法发挥作用

php - 查找最大税级的 SQL 查询

php - 开发动态 jQuery Mobile 移动应用程序的最佳方式是什么?

javascript - MVC3 Razor 无法识别何时停止解析

php - 如何在查询中选择特定值加上额外的随机值?

php - 分析生产中缓慢的 PHP 页面

mysql - 在 MySQL 中执行函数时 SELECT 命令被拒绝