gpt4 book ai didi

MySQL UNION DISTINCT - 排除

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

我有这样的查询:

SELECT cs_event.*, cs_file.name, cs_file.extension, cs_user.first_name, cs_user.last_name
FROM cs_event
LEFT JOIN cs_file ON cs_event.idfile = cs_file.idfile
LEFT JOIN cs_user ON cs_event.iduser = cs_user.iduser
WHERE type != 51
AND idportal = 1
UNION DISTINCT
SELECT cs_event.*, cs_file.name, cs_file.extension, cs_user.first_name, cs_user.last_name
FROM cs_event
LEFT JOIN cs_file ON cs_event.idfile = cs_file.idfile
LEFT JOIN cs_user ON cs_event.iduser = cs_user.iduser
WHERE shared_with_users LIKE '%i:2;%'
AND idportal = 1
ORDER BY add_date DESC
LIMIT 6

问题如下:

普通用户无法看到某些类型的事件(目前为类型 51),他只能看到与他共享的内容。

shared_with_users 列可以为 null 或具有值 - 此列仅对一种类型的事件 (type = 50) 具有值,对于其他事件它为 null。

我需要执行以下操作:

用户可以访问除类型 51 的事件之外的所有事件,如果事件类型为 50,我需要检查该事件是否与他共享(shared_with_users 列),并收集该事件。是否可以进行此类查询?

最佳答案

试试这个

SELECT cs_event.*, cs_file.name, cs_file.extension, cs_user.first_name, cs_user.last_name
FROM cs_event
LEFT JOIN cs_file ON cs_event.idfile = cs_file.idfile
LEFT JOIN cs_user ON cs_event.iduser = cs_user.iduser
WHERE type != 51 o or (type = 50 and shared_with_users LIKE '%i:2;%')
AND idportal = 1
ORDER BY add_date DESC
LIMIT 6

关于MySQL UNION DISTINCT - 排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447948/

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