如何为此构建子查询
How to build subquery for this
我有一个 table 具有字段即。
id,is_public,added_by,is_delete
场景可能性:
当前用户可以看到包含 :
的记录
added_by admin = 0 OR own id
added_by another user AND is_public = 1
**is_deleted=0**
current user's and admin's record is_public='0'
必须显示记录
我的查询:
SELECT * FROM tblname
WHERE
is_delete='0'
AND (added_by='0' OR added_by='15') //ex. current user id = 15
AND is_public='1'
但此查询未提供其他用户的 is_public='1'
记录
请帮忙
您需要在 select:
中使用 OR 运算符
SELECT * FROM tblname
WHERE
is_delete='0' AND (
(added_by='0' OR added_by='15') //ex. current user id = 15
OR is_public='1'
)
如果用户应该看到任何自己的记录被删除或未删除,那么您可以使用此 sql:
SELECT * FROM tblname
WHERE
added_by='15' //ex. current user id = 15
OR (
is_delete='0' AND (added_by='0' OR is_public='1')
);
怎么样:
SELECT * FROM tblname
WHERE
is_delete='0' AND (
(added_by='0' OR added_by='15') //ex. current user id = 15
OR is_public='1')
这样你只显示未删除的帖子:来自同一用户或public
更新:
如果您还希望显示当前用户已删除的帖子(因此用户 0 / 14 的所有帖子,并且只有 public 而不是其他用户删除的帖子:
SELECT * FROM temp
WHERE
(
(user_id='0' OR user_id='15') OR
(is_delete='0' AND is_public='1')
)
我又试了几次,成功了,谢谢大家的支持:)
SELECT * FROM tblname
WHERE
is_delete = '0' AND
( user_id = '0' OR user_id = '15' OR is_public = '1' )
我有一个 table 具有字段即。
id,is_public,added_by,is_delete
场景可能性:
当前用户可以看到包含 :
的记录added_by admin = 0 OR own id
added_by another user AND is_public = 1
**is_deleted=0**
current user's and admin's record is_public='0'
必须显示记录
我的查询:
SELECT * FROM tblname
WHERE
is_delete='0'
AND (added_by='0' OR added_by='15') //ex. current user id = 15
AND is_public='1'
但此查询未提供其他用户的 is_public='1'
记录
请帮忙
您需要在 select:
中使用 OR 运算符SELECT * FROM tblname
WHERE
is_delete='0' AND (
(added_by='0' OR added_by='15') //ex. current user id = 15
OR is_public='1'
)
如果用户应该看到任何自己的记录被删除或未删除,那么您可以使用此 sql:
SELECT * FROM tblname
WHERE
added_by='15' //ex. current user id = 15
OR (
is_delete='0' AND (added_by='0' OR is_public='1')
);
怎么样:
SELECT * FROM tblname
WHERE
is_delete='0' AND (
(added_by='0' OR added_by='15') //ex. current user id = 15
OR is_public='1')
这样你只显示未删除的帖子:来自同一用户或public
更新: 如果您还希望显示当前用户已删除的帖子(因此用户 0 / 14 的所有帖子,并且只有 public 而不是其他用户删除的帖子:
SELECT * FROM temp
WHERE
(
(user_id='0' OR user_id='15') OR
(is_delete='0' AND is_public='1')
)
我又试了几次,成功了,谢谢大家的支持:)
SELECT * FROM tblname
WHERE
is_delete = '0' AND
( user_id = '0' OR user_id = '15' OR is_public = '1' )