我知道一點關於MySQL,但不足以知道爲什麼這個查詢是行不通的。簡單的MySQL查詢不選擇所有的數據?
SELECT * FROM files WHERE uploader LIKE 'value';
我有一個包含上傳器名稱的文件數據庫。然而,當我搜索一個上傳命名錯過了很多的條目,儘管名稱是完全一致的全線貫通。
不知道爲什麼它這樣做。 在此先感謝。
我知道一點關於MySQL,但不足以知道爲什麼這個查詢是行不通的。簡單的MySQL查詢不選擇所有的數據?
SELECT * FROM files WHERE uploader LIKE 'value';
我有一個包含上傳器名稱的文件數據庫。然而,當我搜索一個上傳命名錯過了很多的條目,儘管名稱是完全一致的全線貫通。
不知道爲什麼它這樣做。 在此先感謝。
桑尼,你需要在that there LIKE
clause一些通配符。
SELECT * FROM files WHERE uploader LIKE '%value%';
當你使用像你通常要包括某種形式的通配符:
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
如果你正在尋找一個相同的上傳名稱,例如,名爲傑森的上傳,然後使用等於比較運算符。
SELECT * FROM files WHERE uploader = 'Jason';
如果你想匹配ssJasonsss,傑森等,然後使用:
SELECT * FROM files WHERE uploader LIKE '%Jason%';
我第一次嘗試更多的細節使用=但結果是一樣的。使用上面的答案解決。 – user1263112 2012-03-12 01:39:33