我想帮我一句话,我有下一张桌子
publications
------------
id_publication,
publication,
flag,
id_user_dest,
id_user_source
这是一个出版物的应用程序,您可以在其中发布给其他用户,如果您希望发布私有(因为这是标志),并且只是查看用户源和目标用户,则可以选择发布但不是那句话。
我有一个表用户,其中包括数据用户和管理 会议,在表PUBLICATIONS中查看谁制作了源出版物和目的地出版物。
例如,如果我在个人资料“Juan”
我编写了一些程序,用于向我发送所有已经为$ id_user_profile发布的出版物,这些出版物等同于GET将他带出来
SELECT * FROM publications
WHERE id_user_dest= '$id_user_profile' AND flag=0;
(标志:0是公开的,1是私人的)
在这句话中,我将抛出用户配置文件的所有出版物,更少私有,并且缺少...如果SESSION那个时间等于id_user_dest或id_user_source,那么如果你向我展示出版物Flag 0。
如果我希望所有出版物只显示flag = 0(public),那么句子怎么样,但如果flag = 1且session等于id_user_source或id_user_dest,那么出版物也会出现?
感谢阅读:)
答案 0 :(得分:1)
似乎or
逻辑运算符是您正在寻找的:
SELECT *
FROM publications
WHERE flag = 0 OR '$id_user_profile' IN (id_user_dest, id_user_source)
编辑:
正如Michael Berkowski所指出的,此查询假设flag
只能是0
或1
。如果此假设不正确,则查询应明确处理flag=1
:
SELECT *
FROM publications
WHERE flag = 0 OR
(flag = 1 AND '$id_user_profile' IN (id_user_dest, id_user_source))