gpt4 book ai didi

php - MySQL 查询语法 多个where 和or。完整性检查?

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

我确信我的查询可以进行广泛优化,但无法说出我的想法如何。

我所拥有的是为我的成员(member)提供的类似帖子/评论的概念。他们可以选择与特定的人或所有人分享。因此,我知道我的查询可能会导致重复的结果(如果我能让它首先工作)。我需要在查找用户 ID 时获得一个独特的“ciID”,以及其他地方提到的任何潜在 ID。由于 3 个不同的原因,成员的 ID 存储在 3 个不同的列中。

mID 是成员本身,然后sharedWith 和whos_with 就可以说明问题了。我将 id 存储在 shareWith 和 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

在某个地方我有一个语法错误,我没有注意到,我需要一双眼睛来帮助我

最佳答案

这绝对是错误的:

select DISTINCT(ciID),* from user_posting 

应该是:

select DISTINCT(up.ciID), up.* from user_posting up 

但是我不太确定这是否会返回预期的结果。

我认为你需要重新设计你的表结构。使用 LIKE 选择并不能很好地扩展。

关于php - MySQL 查询语法 多个where 和or。完整性检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325487/

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