2011-02-04 10 views
0

以下のコードは、データベースのテーブルからJohn、Steve、Patを表示します。私はそれがジョンとスティーブだけを表示したい。データベースのテーブルから[somename]を選択する方法

$result = @mysql_query("SELECT * FROM name"); 
$line = @mysql_fetch_array($result); 
$users = $line[user]; 

echo "$users"; 
+0

あなたは '@ mysql_query'をしないでください! SQLエラーを見てうれしいので、修正することができます。 –

+1

もうmysql extentionを使用しないでください。 mysqliまたはPDOを使用する必要があります。 – Erik

+0

使用する前にSQLを読み上げてください。これは 'WHERE'節と呼ばれます。 –

答えて

2

SQLクエリにWHERE句が必要です。この奇妙例えば

SELECT * FROM name WHERE somecolumn=somevalue; 
2

、あなたがあなたのクエリを変更することができます:

select * from name where name in ('Steve','John') 

または

select * from name where name <> 'Pat' 
2

私は、これはあなたが望むものであるかどうかわからないんだけど、あなたはフィルタリングすることができますしたがって、SQL内の一致する名前のリストによって:

SELECT * FROM name WHERE name IN ('John', 'Steve') 

これは、あなたのテーブルがnameと呼ばれ、ユーザの名前を含むカラムがnameとも呼ばれることを前提としています。

私はあなたがここで達成しようとしているものが何かを疑問に思っています。ユーザーレコードから得ようとしている他の有用な情報はありますか?または、名前以外の基準に基づいて返されるユーザーを制限する必要がありますか?

0
$result = @mysql_query("SELECT * FROM name LIMIT 2"); 
+1

ORDER BY句を使用しない限り、MySQLは出力の行の順序を保証しません。したがって、この問合せではANY 2行が返される可能性があります。 – Kel

+0

はい、しかし公平であるために、質問は彼が後になった基準について実際にはっきりしていません - リスト内の最初の2つの場合、2つの特定のエントリ、文字 'P'を含まないエントリなど.. – Basic

3

SELECT * FROM name WHERE [column_name] = 'john' OR [column_name] = 'Steve'

あなたが探しているものということですか?いくつかの注意事項:

  1. あなたはそれが上記のコード内で指定されていないことから、比較されている実際の列の名前と[column_name]を交換する必要があります。
  2. 可能であればSELECT *を使用しないでください。通常、実際の列名を選択する方が良い方法です。データベースでの作業がやや少なく、スキーマの変更などで簡単に破損することはありません。
  3. この比較では大文字と小文字が区別されます。

更新日:修正済み:MySQLでは大文字と小文字は区別されません。したがって、上記の#3は、その環境では問題にならないはずです。

+1

MySQLは大文字と小文字を区別しません。 –

+0

@Rocket:あなたは正しいかもしれませんが、私は確信していないと思います。私はテストする私の前にインスタンスがありません。しかし、少なくとも開発者が明示的に念頭に置いておかなければならないものです。 – David