2012-03-12 53 views
0

我知道一點關於MySQL,但不足以知道爲什麼這個查詢是行不通的。簡單的MySQL查詢不選擇所有的數據?

SELECT * FROM files WHERE uploader LIKE 'value'; 

我有一個包含上傳器名稱的文件數據庫。然而,當我搜索一個上傳命名錯過了很多的條目,儘管名稱是完全一致的全線貫通。

不知道爲什麼它這樣做。 在此先感謝。

回答

7

桑尼,你需要在that there LIKE clause一些通配符。

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

當你使用像你通常要包括某種形式的通配符:

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

對於字符未定義的數字使用%只是一個額外的字符使用_

一些例子:

'%value%'將匹配:

somevaluesome 
somevalue 
valuesome 
value 

另一個樣品:
'_value_'將匹配:

avaluea

但不

value 
avalue 
valuea 

你可以在這裏找到更多的通配符:
http://dev.mysql.com/doc/refman/5.1/en/string-comparison-functions.html

0

如果你正在尋找一個相同的上傳名稱,例如,名爲傑森的上傳,然後使用等於比較運算符。

SELECT * FROM files WHERE uploader = 'Jason'; 

如果你想匹配ssJasonsss,傑森等,然後使用:

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

我第一次嘗試更多的細節使用=但結果是一樣的。使用上面的答案解決。 – user1263112 2012-03-12 01:39:33

0

嘗試以下:

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

瞭解Pattern Matching