【问题标题】:How to get column that have the same value如何获取具有相同值的列
【发布时间】:2018-10-06 13:07:48
【问题描述】:

对不起,我对 MySQL 缺乏了解,但是您如何在不同的领域获得相同的值?

例如,如果我有这样的表:

+-----+-----+-----+   
| id  |  A  |  B  |
+=====+=====+=====+   
|  1  |  1  |  2  |     
|  2  |  3  |  1  | 
+-----+-----+-----+

我想从 A 和 B 中获取值 1。

我尝试做类似的事情:

SELECT A, B FROM table_name WHERE A = 1 AND B = 1

但是,如果 A 或 B 不具有值 1,这将不会返回值。在这种情况下,我希望它只从具有它的列中返回值 1。我想要这样的东西:

SELECT A, B FROM table_name WHERE value = 1

【问题讨论】:

  • 编辑您的问题并显示您想要的结果。
  • 用一句话来表达你想要的通常很有帮助。在这种情况下:“我想要 'a' OR 'b' 的值等于 1 的所有行。”那将是您需要使用“OR”的提示。在你失败的例子中,你告诉数据库你“想要'a'和'b'都等于1的所有行”。 (注意:这并不总是有效,但当你开始时它会有所帮助。)
  • 无论多么简单,两行都不足以传达期望的结果。见Why should I provide an MCVE for what seems to me to be a very simple SQL query
  • @Strawberry 很抱歉并不是要让人们难以理解我的问题,如果我想再询问与 SQL 相关的问题,我会将其作为说明。但我得到了答案
  • 问题和答案都有机会服务于更广泛的 SO 社区 - 而不仅仅是 OP - 所以改进自己的问题永远不会太晚。

标签: mysql sql database phpmyadmin


【解决方案1】:

我想你想要OR:

SELECT A, B
FROM t
WHERE A = 1 OR B = 1

这可以使用IN缩短:

WHERE 1 IN (A, B)

【讨论】:

  • 谢谢!这正是我想要的
【解决方案2】:

你应该使用查询:

SELECT A, B FROM table_name WHERE A = 1 OR B = 1

在这里,您会得到 A=1 或 B=1 或 A & B = 1 的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2021-01-25
    相关资源
    最近更新 更多