【问题标题】:MySQL except trying get all user that is online except oneMySQL,除了尝试获取所有在线用户,除了一个
【发布时间】:2013-05-16 01:37:02
【问题描述】:

当我想选择所有的打字和在线用户(1)时,我该怎么说,除了一个 id 为 4 的用户?我想要 id= 4 的用户名而不是打字

我试过 NOT IN 但我猜它不适合我。

SELECT username,typing FROM members WHERE status = 1 NOT IN (SELECT typing FROM members WHERE id =4)

http://img266.imageshack.us/img266/2313/typing.png

点击图片了解更多信息

【问题讨论】:

  • 您能提供样本数据和预期结果吗?您的描述不清楚。
  • 更新查看图片
  • 当您说“在线(1)”时,您的意思是“在线(即状态=1)”吗?只要确定图像没有状态列
  • 是的,它是一个布尔值,在线状态 =1
  • “我想要 id=4 的用户名而不是打字”是什么意思?听起来你在自相矛盾,所以请解释一下那部分

标签: mysql except


【解决方案1】:

这是你想要的吗?

SELECT username, 
       (case when id <> 4 then typing end) as typing
FROM members
WHERE status = 1 or id = 4

根据你的形象,我想你只是想要:

SELECT username, typing
FROM members
WHERE status = 1 and id <> 4

【讨论】:

  • 不,抱歉,我想选择所有用户并输入在线状态 = 1,除了输入 id = 4
  • 在你的问题中说同样的话并不能让它更清楚。你能展示一些示例数据和所需的输出吗?
【解决方案2】:

我会使用这样的连接:

SELECT username, typing FROM members members LEFT OUTER JOIN typing typing WHERE members.status = 1 AND typing.id <> 4

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 2013-04-25
    • 2022-01-12
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多