gpt4 book ai didi

mysql - SQL语句中的IF

转载 作者:行者123 更新时间:2023-11-29 00:04:33 25 4
gpt4 key购买 nike

帮我造句,我有下 table

publications
------------
id_publication,
publication,
flag,
id_user_dest,
id_user_source

它是一个发布应用程序,您可以在其中发布给其他用户,如果您希望发布私有(private)(因为这是标志)并且只需查看用户源和目标用户,那么发布是一个选择,但不像那句话那样。

我有一个用户表,数据用户和管理在哪里 session ,在表 PUBLICATIONS 中查看谁制作了源发布和目标发布。

例如,如果我在个人资料“Juan”中

我编写了一个程序,通过 GET 将所有属于 $id_user_profile 的出版物喷出来,这等于 Juan 他

SELECT * FROM publications 
WHERE id_user_dest= '$id_user_profile' AND flag=0;

(标志:0为公开,1为私有(private))

在这句话中,我会抛出用户配置文件的所有发布,不那么私有(private),并且缺少...如果当时的 SESSION 等于 id_user_dest 或 id_user_source,那么如果您向我显示发布标志 0。

如果我想让所有发布只出现flag=0(public),但是如果flag=1并且session等于id_user_source或id_user_dest,那么发布也出现,这句话怎么写?

感谢阅读:)

最佳答案

您要找的似乎是 or 逻辑运算符:

SELECT * 
FROM publications
WHERE flag = 0 OR '$id_user_profile' IN (id_user_dest, id_user_source)

编辑:
正如 Michael Berkowski 指出的那样,此查询假定 flag 只能是 01。如果这个假设不正确,查询应该明确对待 flag=1:

SELECT * 
FROM publications
WHERE flag = 0 OR
(flag = 1 AND '$id_user_profile' IN (id_user_dest, id_user_source))

关于mysql - SQL语句中的IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28130319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com