2011-01-19 6 views
1
$query = "SELECT distinct('case'), firstname, lastname 
      FROM cases "; 

なぜ「大文字小文字」がエコーされないのですか?これは、クエリは次のようにあるときに、それはエコーされます。..数PHP SELECT distinctは変数をエコーし​​ませんか?

です:

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

よう$row['case']として使用asをケースにアクセスしたい場合、それはあなたの場合には役立つかもしれません変数をエコーするために使用しているコードを表示します。 –

+0

2番目のクエリが無効です - 'case'はMySQLの予約語です:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html –

+0

DISTINCT(' case' )GROUP BY 'case'を使用すると、すべての別個の行ではなく、同じ大文字の行が返されます – DeveloperChris

答えて

5

まず、ケースを引用符であってはならない、それがバッククォートでなければなりません。次に、DISTINCTは、式のまわりにあるかっこに関係なく、常に行全体に適用されます。あなたの質問では、カッコが誤解を招き、削除する必要があります。

SELECT DISTINCT `case`, firstname, lastname FROM cases 

あなたは、各caseのための単一の集約行を返したい場合は、「`case` BY GROUP」を使用する必要がありますが、あなたは他の値に対して返されるべきかを検討する必要があります。

0

あなたが仕事を文句を言わない$row['case']をエコーし​​ようとしている可能性がありますので、戻っているフェイルドがcaseではありませんので、ケースがエコーされていないがdistinct(case)

そして、あなたは、単一引用符を回避しないか、引用符や使用を与えないために必要がありますバッククォート。他のMySQLは

はそう

SELECT 
    DISTINCT(case), 
    firstname, 
    lastname 
FROM 
    cases 

にクエリを変更する文字列リテラルとしてケースがかかりますそして、あなたは

SELECT 
    DISTINCT(case) as case, 
    firstname, 
    lastname 
FROM 
    cases 
関連する問題