dongxuan8227 2012-07-04 08:42
浏览 42
已采纳

MySQL查询语法Multiple where和or。 完整性检查?

My Query which I am sure can be optimized extensively but couldn't say how off the top of my head.

What I have is a post/comment like concept going on for my members. Where they can choose to share it with specific people or everyone. So from this I know my query can potentially cause duplicate results (if I could get it to work in the first place). I need to get a distinct 'ciID' while finding the users ID, along with any potential ID's mentioned else where. The ID's for the members are stored in 3 different columns for 3 different reasons.

mID is the member themselves, then sharedWith and whos_with kinda speak for themselves. I store the id's in sharedWith and whos_with like 1111:2222:3333 But in all I have to search across all 3 columns for the member ID shared, and whos column to make sure I get all the results for the ID's being passed through a function in an array. Which after building the query through a loop I come up with a query like

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

somewhere in that I have a syntax erro I am not noticing, and I need a pair of eyes to help me out

  • 写回答

1条回答 默认 最新

  • doushengyou2617 2012-07-04 08:47
    关注

    This is definitely wrong:

    select DISTINCT(ciID),* from user_posting 
    

    It should be:

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

    However I am not quite sure if that will return the expected results.

    I think you need to re-design your table structure. Selecting with LIKE doesn't scale that good.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么