标签:conditional where-clause mysql php
我正在尝试使用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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。