数据库
首页 > 数据库> > PHP-MySQL查询和条件where子句

PHP-MySQL查询和条件where子句

作者:互联网

我正在尝试使用PHP和MySQL获得涉及实际用户的所有私人聊天.
为此,我有一个名为“房间”的表(id,id_initiate_user,id_target_user)和另一个名为“用户”的表(id_pseudo,avatar).
如果实际用户是聊天室的发起用户,那么我想从目标用户那里获取化身和伪造的东西;如果实际用户是该房间的目标用户,那么我想从发起人那里获取化身和假冒的东西.用户(无论如何,我都希望其他成员的头像和伪图片).

我猜我当时需要查询中的一个条件,但我真的不知道如何管理(整天用Google搜索).

这是我的查询(逻辑存在,但语法显然错误:

$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
    )
) 

标签:conditional,where-clause,mysql,php
来源: https://codeday.me/bug/20191201/2081327.html