SQLでワイルドカードはどのように機能しますか。私がそうするならselect * from table
、それはすべてのフィールドを与えます。しかし、私がそうselect a* from table
すると、エラーが発生します。で始まるすべてのフィールドを指定する必要がありますか?私は少し混乱しています。
3 に答える
SELECT * FROM tableName
文字通り、「tableNameからすべての列を選択する」という意味です。
フィリップ・グラハムは、彼が使用するように頼んだ彼の答えについて正しいですa.*
ワイルドカードは、不明な文字列を検索するのに役立ちます。これらはほとんどの場合、LIKE
キーワードとともに使用され、WHERE
句または検索されたCASE
ステートメントに入れられます。
2つのワイルドカード文字-%
と。があり_
ます。
%
0以上の長さの文字列を検索するために使用されます。例えば、
SELECT firstName
FROM persons
WHERE UPPER(firstName) LIKE 'J%'
これにより、名が文字で始まるテーブルfirstName
からすべてが返されます。これにより、「Jason」、「James」、「Josh」、「Jessica」などが返されます。persons
J
UPPER
大文字と小文字の区別をなくすために関数が使用されていることに注意してください。
_
次に、 1つのキャラクターの存在を探すキャラクターを持つことができます。
SELECT firstName
FROM persons
WHERE UPPER(firstName) LIKE 'J_M__'
これにより、「James」、「Jimmy」、「Jamos」、「Jxmx」が返され、「Jason」、「Jaguar」などが除外されます。
詳細については、ここをクリックしてください
a。*を使用できます。ここで、aはテーブルの名前です。たとえば
select a.* from a left join b on a.id = b.id
aからのフィールドのみを返し、bからは返しません
SQLでワイルドカードを使用する場合は、を使用してフィルタリングする列をキー入力する必要がありますLIKE
。
SELECT *
FROM table
WHERE column_name LIKE 'a%';
これにより、その列の「a」で始まるすべてのものが得られます。
すべての列が必要ない場合は、クエリで必要な各列の名前を明示的に指定する必要があります。
SELECT LastName, FirstName, Address
FROM table
したがって、「a」で始まるすべてのフィールドが必要な場合は、SELECTステートメントで「a」で始まるすべてのフィールドに名前を付ける必要があります。
お役に立てれば。