2011-06-11 49 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