Как использовать регулярное выражение в петле, где предложение - подключен к источнику данных SQL Server? - PullRequest
1 голос
/ 04 мая 2019

Я использую приведенный ниже код для поиска пользователей в БД SQL Server, но выдает ошибку REGEXP.

Использование loopback 3 и loopback-mssql-connecter

let searchedValue = await User.find({
        where: {
          or: [
            {first_name: new RegExp('\\b' + req.query.s, 'i')},
            {last_name: new RegExp('\\b' + req.query.s, 'i')},
            {email: new RegExp('^' + req.query.s, 'i')},
          ],
        },
      });

Этот точный запрос работает, когда он связан с источником данных MongoDB, но не работает при использовании источника данных SQL Server.

Я получаю следующие ошибки

Microsoft SQL Server не поддерживает оператор регулярных выражений
Необработанная ошибка для запроса GET / api / league / searchusers /? S = nir:
RequestError: неправильный синтаксис рядом с REGEXP.

1 Ответ

0 голосов
/ 04 мая 2019

Sql Server не поддерживает регулярные выражения . Вы можете использовать LIKE, но без гарантий.

            {first_name: {like: '\\b' + req.query.s}},
            {last_name: {like: '\\b' + req.query.s}},
            {email: {like: '^' + req.query.s}}

MongoDB - это другой источник данных, который поддерживает их.

...