【问题标题】:Mysql Compare two columnsMysql比较两列
【发布时间】:2013-06-24 20:21:42
【问题描述】:

我有一个包含以下列的数据库表:
id_product, qty, total

我想选择 qty 这是我现在正在使用的,但它不起作用:

SELECT * FROM tb_products WHERE id_product='$id' AND qty < total;

【问题讨论】:

  • 'qty' > 'total' 缺少单引号
  • 那是错误的。 'qty' 是包含字母 qty 的字符串。 qty 本身就是一个名为“qty”的字段。同上。 'qty' &lt; 'total' 是正确的,因为 q 在字母表中位于 t 之前,而不是因为您正在比较这些字段的值。您的 where 子句现在等同于 where 1=1,这始终是正确的。
  • 嗯...有道理...那么正确的解决方案是什么?
  • 您所写的查询没有任何问题。如果它没有返回任何内容,那么您没有任何具有指定 id 且数量小于总数的记录。
  • 它就像我在下面的评论中所说的那样工作。如果 qty 为 0,则返回...但如果是大于 5 的任何数字,则不返回任何内容。

标签: mysql


【解决方案1】:

我猜你正在寻找这个查询:

    SELECT * FROM tb_products WHERE   qty < total;

您不必寻找 id_product

demo

【讨论】:

    【解决方案2】:

    Marc B 是对的:

    也许您在 qty/total 字段中使用了 varchars,在这种情况下 qty=6 和 total=50 实际上会给出您的症状。将数字作为字符串进行比较意味着 6 大于 50,因为 6 > 5 = true。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多