2011-09-09 7 views
1

検索エンジンを作成しようとしていますが、2つの列で異なる行を選択する必要があります。"SELECT DISTINCT"で "AND"ステートメントを使用

$sorgu = mysql_query("SELECT DISTINCT name AND surname FROM users"); 

    while($cek = mysql_fetch_array($sorgu)) 
    { 
     $display = $cek['name']." ".$cek['surname']; 

     if(strcmp($written,$display) == 0) 
     { 
      echo $display; 
     }  
    } 

ここで「AND」ステートメントを削除すると、名前と姓の両方で未定義のインデックスエラーが発生しています。コードは正常に動作します。どのように私はここで "AND"を使用することができますか?同時に2つの列を比較しますか? ありがとう

+0

ことを意味するために何を想定している。

はまた、コードに連結のisntead、あなたはまた、データベース内にいることができますか?名前と姓はそれぞれ違うはずですか?または、名前+姓の組み合わせが一意であると思われますか?それとも別のことですか? – NullUserException

+2

複数のフィールドに対してDISTINCTの代わりにGROUP BYを使用する; DISTINCT idに変更する。 –

+0

名前+姓がユニークであるとされている – user893970

答えて

2

にそれがあるべき

SELECT DISTINCT Name, Surname 
FROM Users 

GROUP BY Name, Surname

のようにこれは、あなたの結果が得られます。それだけでGROUP BYであるのに対し、ほとんどのデータベースDISTINCT(またはUNIQUE)で

Name | Surname 
------------------ 
    John | Smith 
    John | Doe 
    John | Smith 
+1

+1でそれをするのではなく、 'DISTINCT concat(name、 ''、surname)FROM users'を行うこともできます。私は 'DISTINCT'があなたがそれを使用するときに' SELECT'ステートメントの全てに適用されると信じています。 – jadarnel27

+1

それは正しいです、 'DISTINCT Name'と' DISTINCT Surname'を望むなら、これを達成するためにサブクエリを使う必要があります。 – jon3laze

+2

DISTINCTが適用されている場合はGROUP BYは必要ありません – ajreal

0

2つ以上のフィールドにDISTINCTの代わりにGROUP BYを使用する; DISTINCT idに変更する。あなたがDISTINCT名前を引っ張ると姓しようとしている場合

変更

$sorgu = mysql_query("SELECT DISTINCT name AND surname FROM users"); 

$sorgu = mysql_query("SELECT name, surname FROM users GROUP BY name, surname"); 
0

GROUP BY ... ORDER BYと等価である:それはのような結果が回避

Name | Surname 
------------------ 
    John | Smith 
    John | Doe 
    Doug | Smith 

順不同DISTINCT

この:

  • SELECT DISTINCT name, surname 
    FROM users 
    

に相当する必要があります。

に似て
  • SELECT name, surname 
    FROM  users 
    GROUP BY name, surname 
    ORDER BY name, surname 
    

  • SELECT name, surname 
    FROM  users 
    GROUP BY name, surname 
    

すべてのレコードに固有のレコードが必要ですが、最後のレコードが最も高速になります。

  • SELECT DISTINCT concat(name,' ',surname) 
    FROM users 
    
関連する問題