【问题标题】:PHP SELECT distinct doesn't echo variable?PHP SELECT distinct不回显变量?
【发布时间】:2011-06-12 02:48:55
【问题描述】:
$query = "SELECT distinct('case'), firstname, lastname 
            FROM cases ";

为什么不能回显“case”?这是一个数字..

这样查询时会回显:

$query = "SELECT case, firstname, lastname 
            FROM cases ";

【问题讨论】:

  • 如果您显示用于“回显”变量的代码可能会有所帮助。
  • 您的第二个查询无效 - case 是 MySQL 中的保留字:dev.mysql.com/doc/refman/5.5/en/reserved-words.html
  • 如果你真的想要 DISTINCT(case) 使用 GROUP BY case,它将返回大小写相同的行,而不是所有不同的行

标签: php mysql insert distinct


【解决方案1】:

首先,大小写不应该用引号,应该用反引号。其次,无论您在任何表达式周围可能有任何括号,DISTINCT 始终适用于整行。在您的查询中,您的括号具有误导性,应该删除。

SELECT DISTINCT `case`, firstname, lastname FROM cases

如果您想为每个 case 返回单个聚合行,您需要使用“GROUP BY `case`”,但是您需要考虑应该为其他值返回什么。

【讨论】:

    【解决方案2】:

    没有回显该案例,因为您可能试图回显$row['case'],这将不起作用,因为返回的字段不是case,而是distinct(case)

    你需要避免使用单引号,要么不加引号,要么使用反引号;否则mysql会将大小写作为文字字符串

    所以将查询更改为

    SELECT
        DISTINCT(case),
        firstname,
        lastname
    FROM
        cases
    

    如果您想以$row['case'] 的身份访问案例,请使用as 之类的

    SELECT
        DISTINCT(case) as case,
        firstname,
        lastname
    FROM
        cases
    

    【讨论】:

      猜你喜欢
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 2014-07-10
      • 2014-12-08
      相关资源
      最近更新 更多