2011-07-26 5 views
2
Ex. mysql_query("SELECT * FROM members WHERE id='$id'); 
+1

「すべてのフィールド(列)」を意味します –

+1

関連:http://stackoverflow.com/questions/3639861/why-is-select-considered-harmful –

+0

おかげで、twas良い読書。 – user784637

答えて

5

テーブル内のすべての列を選択することを意味します。

3

一部のテーブルからすべてのフィールドを選択します。

3

これはワイルドカードであり、結果セット内のそのテーブルのすべての列を返します。

2

つまり、テーブルのすべての列を選択しています。これは、プロダクション環境では避けなければならないものですが、オーバーヘッドが発生し、テーブルを変更してセレクタ*を使用したときに問題が発生する傾向があるためです。

これを行うには良い方法は、あなたがそれぞれの時間を必要とする列のみを選択することで、次の例のように:

SELECT `id`, `firstName`, `lastName` FROM members WHERE id='$id' 
+0

それはあなたがそこにあるかなり芸術的な写真です! – user784637

0

これは、参照されるテーブルのすべての列を参照して、「すべて選択」を意味します。 *の問題は、静的レポートテンプレートで使用される既存のテーブルまたはselectステートメントを使用したinsertステートメントに関連しています。参照されたテーブルが変更された場合、*を使用して返された結果セットが変更されます。挿入またはレポートのソースレコードセットに追加または欠落している列があると、クエリが壊れることがあります。主なポイントは、*を使用すると、矛盾した列とレコードセットが得られることです。

+0

これはおそらく、質問自体には答えないので、あなたが参照した答えに対するコメントになるはずです。 –

+0

それは公正な点です。私は遭遇した問題のいくつかの例を挙げたがっています。他の人の回答にコメントを投稿するのに十分な評判ポイントがありません。 –

関連する問題