PHP SELECT distinct不回显变量?

时间:2011-01-19 22:43:51

标签: php mysql insert distinct

$query = "SELECT distinct('case'), firstname, lastname 
            FROM cases ";

为什么不能回应“案例”?这是一个数字..

当查询如下时,它将回显:

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

2 个答案:

答案 0 :(得分:5)

首先,案例不应该在引号中,它应该在反引号中。其次,无论您在任何表达式周围有任何括号,DISTINCT始终适用于整行。在您的查询中,您的括号会产生误导,应予以删除。

SELECT DISTINCT `case`, firstname, lastname FROM cases

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

答案 1 :(得分:0)

案例没有得到回应,因为您可能正在尝试回复$row['case'],因为返回的字段不是case而是distinct(case)

你需要避免单引号并且不要引用或使用反引号;否则mysql会将case作为文字字符串

所以将查询更改为

SELECT
    DISTINCT(case),
    firstname,
    lastname
FROM
    cases

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

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