我正在使用以下代码在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 / leagues / searchusers /?s = nir:
RequestError:“ REGEXP”附近的语法不正确。
答案 0 :(得分:0)
Sql Server does not support regex。您可以使用LIKE
,但不能保证。
{first_name: {like: '\\b' + req.query.s}},
{last_name: {like: '\\b' + req.query.s}},
{email: {like: '^' + req.query.s}}
MongoDB是支持它们的另一个数据源。
答案 1 :(得分:0)
尝试此操作以获取SQL数据源
[
{first_name: { like: `%${req.query.s}%`} },
{last_name: { like: `%${req.query.s}%`} },
{email: { like: `${req.query.s}%`} },
]