2012-03-12 4 views
0

私はMySQLについて少し知っていますが、なぜこのクエリが機能していないのかを知るには十分ではありません。単純なMySQLクエリはすべてのデータを選択していませんか?

SELECT * FROM files WHERE uploader LIKE 'value'; 

私はアップローダ名を含むファイルのデータベースを持っています。しかし、アップローダーの名前を検索すると、その名前が完全に同一であっても、多くのエントリが失われます。

なぜこれを行うのかわかりません。 ありがとうございます。

答えて

7

サニー、that there LIKE clauseにいくつかのワイルドカードが必要です。文字の未定義の数については

SELECT * FROM files WHERE uploader LIKE '%value%'; 

はただ一つの追加文字の使用_ため%を使用します。

SELECT * FROM files WHERE uploader LIKE '%value%'; 
0

あなたはあなたのような使用は通常のワイルドカードのいくつかの並べ替えを含めたいです。

いくつかの例:

'%value%'は一致します:

somevaluesome 
somevalue 
valuesome 
value 

別のサンプル:
'_value_'は一致します:

avaluea

なく

あなたはここでより多くのワイルドカードを見つけることができます:
http://dev.mysql.com/doc/refman/5.1/en/string-comparison-functions.html

0

あなたは同じアップローダー名を検索する場合は、例えば、ジェイソンという名前のアップローダーは、その後、比較演算子に等しい使用しています。あなたがなどssJasonsss、ジェイソンと一致したい場合

SELECT * FROM files WHERE uploader = 'Jason'; 

、その後、使用:

SELECT * FROM files WHERE uploader LIKE '%Jason%'; 
+0

の詳細を読みます=を使用しても結果は同じでした。上記の答えを使用して解決されます。 – user1263112

0

を下にしてみてください。

SELECT * FROM files WHERE uploader LIKE '%value%' 

は、私が最初に試したPattern Matching