MySQL Whole Word Match - несколько слов

В моем случае используется администратор firebase,

const  admin = require('firebase-admin');

, и я могу завершить процесс узла с помощью

return admin.app().delete();
1
задан GMB 23 February 2019 в 13:06
поделиться

1 ответ

Вы получаете разные результаты, потому что два регулярных выражения не идентичны.

(^| ) означает: либо начало строки, либо пробел (( |$) имеет то же значение в конце строки).

[[:<:]] и [[:>:]] - это границы слов : концептуально это относится к символам, которые разделяют слова, и обычно движки регулярных выражений интерпретируют его как нечто вроде: что угодно, кроме цифры, буквы или подчеркивание.

Таким образом, в основном первый шаблон является более строгим, чем второй (пробел, начало и конец строки - это границы слов, но есть и другие).

Если у вас есть более одного ключевого слова для поиска, вам нужно будет повторить совпадения с регулярным выражением, например:

WHERE 
    ".$source." RLIKE '[[:<:]]".$keyword1."[[:>:]]'
    OR ".$source." RLIKE '[[:<:]]".$keyword2."[[:>:]]'

Или создать новое регулярное выражение, комбинируя ключевые слова:

WHERE 
    ".$source." RLIKE '[[:<:]](".$keyword1.")|(".$keyword2.")[[:>:]]'

Примечание: для требования поиска вам следует рассмотреть возможность использования Полнотекстового поиска MySQL , который в первую очередь предназначен для поиска полных слов (хотя есть предварительные условия).

0
ответ дан GMB 23 February 2019 в 13:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: