SQLite3, MATCH и OR - PullRequest
       6

SQLite3, MATCH и OR

2 голосов
/ 11 июня 2011

Допустимо ли объединение 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';

даю хиты.

%%

Edit. Код ошибки выбора с ИЛИ равен 1, так что он неправильно сформирован. Результат на втором и третьем 0, поэтому они в порядке. Я не уверен, что не так.

Ответы [ 2 ]

5 голосов
/ 11 июня 2011

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

SELECT * FROM myTable WHERE name MATCH 'andrew OR bill'
0 голосов
/ 22 мая 2015
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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...