【问题标题】:Mysql query: selecting from two rows in the same fieldMysql查询:从同一字段的两行中选择
【发布时间】:2011-03-09 15:27:53
【问题描述】:

我有以下mysql表:

产品

ID -- NAME -- INSTOCK -- REFERER -- DISCOUNT 
1 -- pen -- 1 -- google.com -- 50 
2 -- mouse -- 0 -- google.ca -- 30
3 -- keyboard -- 1 -- google.ca -- 30
4 -- screen -- 1 -- yahoo.com -- 50
5 -- mother board -- 1 -- yahoo.ca -- 30
6 -- printer -- 1 -- google.com --30

我想要得到的是所有具有的行:

INSTOCK 等于 1,REFERER 等于 google.com 和 google.ca

我该怎么做?

非常感谢

【问题讨论】:

  • 只是为了确保您要选择有货的产品,并且推荐人是 google.com 或 google.ca?对于您的示例,您希望返回 1、2、3 和 6?
  • 这似乎是不可能的。您希望从此查询中返回什么 ID?
  • 我们可能指的是 google.com google.ca...
  • ID 应该是 1、3 和 6。编号 2 的 instock=0。谢谢

标签: mysql select row field


【解决方案1】:

我敢打赌,您的问题是 OR,而不是 AND:

您在寻找 IN:

SELECT * FROm table WHERE INSTOCK = 1 AND REFERER IN ('google.com', 'google.ca')

或者你可以使用 OR:

SELECT * FROM table WHERE INSTOCK = 1 AND (REFERER = 'google.com' OR REFERER = 'google.ca')

【讨论】:

    【解决方案2】:

    这是非常基本的 SQL:

    SELECT ID, NAME
    FROM Products
    WHERE INSTOCK = 1 AND (REFERER = 'google.com' OR REFERER = 'google.ca');
    

    进一步参考:

    【讨论】:

      【解决方案3】:

      在查询中使用结合 AND 条件的 WHERE 语句:

      // Example
      SELECT ID, NAME FROM table WHERE INSTOCK = 1 AND (REFERER = 'google.com' OR REFERER = 'google.ca');

      【讨论】:

      • 感谢 Artusamak,但根据您的查询,我得到 0 个结果,这不是真的 :(
      • 您的预期结果是什么?
      • @user523129 再次阅读您的问题。这就是你要求的;-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 2014-01-28
      • 2010-10-13
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多