Как найти точное совпадение в MySQL версии 8.x - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь найти точное слово из базы данных, используя приведенный ниже синтаксис.

SELECT count(*) as total FROM node_field_data node LEFT JOIN book book ON node.nid = book.nid LEFT JOIN node__body body ON node.nid = body.entity_id LEFT JOIN node__field_rule_number rule_number ON node.nid = rule_number.entity_id LEFT JOIN node__field_effective_date effective_date ON node.nid = effective_date.entity_id LEFT JOIN node__field_end_date end_date ON node.nid = end_date.entity_id WHERE ( node.title REGEXP :text OR body.body_value REGEXP :text OR rule_number.field_rule_number_value REGEXP :text ); Array ( [:text] => [[:<:]]law[[:>:]] )

выдает следующую ошибку

SQLSTATE [HY000]: общая ошибка : 3685 Недопустимый аргумент для регулярного выражения.

Может кто-нибудь сказать мне, где я делаю ошибку, ниже приведен код, в котором я пытаюсь найти точное совпадение

if ($exact) {
            $text = "";
            foreach($keywords as $keyword) {
                $text = $text . preg_quote($keyword) . " ";
            }
            $text = preg_replace('/\s+$/', '', $text);
            $params[':text'] = "[[:<:]]".$text."[[:>:]]";

        }
...