2011-06-11 50 views
2

MATCHOR結合起來有效嗎?SQLite3,MATCH和OR

例如,

SELECT * FROM myTable WHERE name MATCH 'andrew' OR name MATCH 'bill';

不會產生任何安打,同時兼具

SELECT * FROM myTable WHERE name MATCH 'andrew';

SELECT * FROM myTable WHERE name MATCH 'bill';

做給命中。

%%

編輯。選擇與OR錯誤代碼是1,所以這是錯誤的一些方式。第二和第三的結果是0,所以他們很好。我不確定有什麼問題。

回答

5

http://www.sqlite.org/fts3.html#section_3

SELECT * FROM myTable WHERE name MATCH 'andrew OR bill' 
+0

16 SDiz:感謝。有沒有一種方法可以混合使用MATCH和REGEXP? – SK9 2011-06-11 05:08:55

+0

一個額外的信息**匹配**僅適用於虛擬表,對於常規的一個使用''像「。 – CoDe 2017-07-30 10:26:56

1
SELECT * FROM myTable WHERE name MATCH 'andrew OR bill' 

SELECT * FROM myTable WHERE name MATCH ('andrew' OR 'bill') 

c.execute("SELECT * FROM myTable WHERE name MATCH (? OR ?)", ('andrew', 'bill')) 
#safe from SQL injection attacks by escaping the variables. 

SQLite的理解下面的二元運算符, 爲了從最高到最低的優先級:

|| 
* / % 
+ - 
<< >> & | 
< <= > >= 
= == != <> IS IS NOT IN LIKE GLOB MATCH REGEXP 
AND 

OR 

支持的一元前綴運算符是這些:

- + ~ NOT 

https://www.sqlite.org/lang_expr.html