Mysql 如果在SQL语句中
我想帮我说一句话,我有下一张桌子Mysql 如果在SQL语句中,mysql,sql,select,Mysql,Sql,Select,我想帮我说一句话,我有下一张桌子 publications ------------ id_publication, publication, flag, id_user_dest, id_user_source 它是一个发布应用程序,您可以在其中向其他用户发布,如果您希望发布私有的(因为这是标志),也可以选择发布,只需查看用户源用户和目标用户,而不必这样做 我有一个用户表,其中有数据用户和管理 会话,在表发布中查看源发布和目标发布的作者 例如,如果我在个人资料“Juan”中 我的程序向我吐出
publications
------------
id_publication,
publication,
flag,
id_user_dest,
id_user_source
它是一个发布应用程序,您可以在其中向其他用户发布,如果您希望发布私有的(因为这是标志),也可以选择发布,只需查看用户源用户和目标用户,而不必这样做
我有一个用户表,其中有数据用户和管理
会话,在表发布中查看源发布和目标发布的作者
例如,如果我在个人资料“Juan”中
我的程序向我吐出了所有的出版物,这些出版物都是为$id_user_profile而写的,这相当于让他通过GET退出
SELECT * FROM publications
WHERE id_user_dest= '$id_user_profile' AND flag=0;
(标志:0为公共,1为私有)
在这句话中,我会扔掉所有的用户资料出版物,不太私密,而且缺乏。。。如果该时间的会话等于id\u user\u dest或id\u user\u source,那么如果您向我显示发布标志0
如果我希望所有发布仅在标志=0(public)时显示,但如果标志=1且会话等于id\u user\u source或id\u user\u dest,则发布也会显示,这句话怎么说
感谢阅读:)看起来您正在寻找的是
或
逻辑运算符:
SELECT *
FROM publications
WHERE flag = 0 OR '$id_user_profile' IN (id_user_dest, id_user_source)
编辑:正如Michael Berkowski所指出的,此查询假设
标志
只能是0
或1
。如果此假设不正确,查询应明确处理flag=1
:
SELECT *
FROM publications
WHERE flag = 0 OR
(flag = 1 AND '$id_user_profile' IN (id_user_dest, id_user_source))
我听不懂这个问题。你能分享一些样本数据和你想要达到的结果吗?对不起,我的英语:)问题是:如果我想要所有的出版物,那么这个句子怎么会只显示flag=0(public),但是如果flag=1,会话等于id\u user\u source或id\u user\u dest,然后,出版物也出现了,如果
0,1
可能不仅仅是flag
,那么flag=0或(flag=1和“$id\u user\u profile”在(id\u user\u dest,id\u user\u source))
@MichaelBerkowski,OP似乎建议flag
可以是0
或1
,但你是对的。我在我的回答中添加了这一评论。谢谢