我确信可以对我的查询进行广泛优化,但不能说出我的想法。
我所拥有的是为我的成员提供的类似帖子/评论的概念。他们可以选择与特定的人或所有人共享它。所以从这里我知道我的查询可能会导致重复的结果(如果我能让它首先工作的话)。我需要在查找用户 ID 时获得一个独特的“ciID”,以及在其他地方提到的任何潜在 ID。出于 3 个不同的原因,成员的 ID 存储在 3 个不同的列中。
mID 是成员自己,然后 sharedWith 和 whos_with 有点为自己说话。我将 id 存储在 sharedWith 和 whos_with 中,1111:2222:3333
但总而言之,我必须在所有 3 列中搜索共享的成员 ID 和 whos 列,以确保获得通过数组中的函数传递的 ID 的所有结果。在通过循环构建查询之后,我想出了一个类似的查询
select DISTINCT(ciID),* from user_posting
where (mID = 21 OR sharedWith LIKE '%21%' OR whosWith LIKE '%21%')
or (mID = 22 OR sharedWith LIKE '%22%' OR whosWith LIKE '%22%')
or (mID = 45 OR sharedWith LIKE '%45%' OR whosWith LIKE '%45%')
limit 1
在某处我有一个我没有注意到的语法错误,我需要一双眼睛来帮助我