带有使用列值的表达式的 loopbackjs where 子句
loopbackjs where clause with expressions using column values
我有一个 mySQL 数据库 table t1,其中有一个名为 filter 的 bigint 字段,我需要 'and' 到给定的查询参数以过滤掉条目。
table t1:
filter bigint unsigned
info varchar(200)
作为一个纯粹的 mySQL 语句,我的查询是这样的:
SELECT info FROM t1 WHERE (filter & 34603933) = filter;
当然,数字 34603933
是一个参数,随着查询的不同而变化。
问题是loopbackjs是否支持where条件下这样的演算。有人能给我指路吗,或者如果不可能的话建议解决方法?
在文档中 http://docs.strongloop.com/display/public/LB/Where+filter 我没有看到这样做的可能性,但不知何故我无法真正相信它,因为在 where 比较的右侧使用对列值的引用并不罕见,对吧?
我不相信环回具有这种内置和按位支持,并且操作并不广泛(根据我的经验)。您可以尝试原始 SQL 接口:
var mysqlDS = app.dataSources.mysqlDS;
var bitWiseAndValue = 34603933;
mysqlDS.connector.query('SELECT info FROM t1 WHERE (filter & '+bitWiseAndValue+') = filter', function(err) {
if (err) {return console.log(err);}
// success actions
});
我有一个 mySQL 数据库 table t1,其中有一个名为 filter 的 bigint 字段,我需要 'and' 到给定的查询参数以过滤掉条目。
table t1:
filter bigint unsigned
info varchar(200)
作为一个纯粹的 mySQL 语句,我的查询是这样的:
SELECT info FROM t1 WHERE (filter & 34603933) = filter;
当然,数字 34603933
是一个参数,随着查询的不同而变化。
问题是loopbackjs是否支持where条件下这样的演算。有人能给我指路吗,或者如果不可能的话建议解决方法?
在文档中 http://docs.strongloop.com/display/public/LB/Where+filter 我没有看到这样做的可能性,但不知何故我无法真正相信它,因为在 where 比较的右侧使用对列值的引用并不罕见,对吧?
我不相信环回具有这种内置和按位支持,并且操作并不广泛(根据我的经验)。您可以尝试原始 SQL 接口:
var mysqlDS = app.dataSources.mysqlDS;
var bitWiseAndValue = 34603933;
mysqlDS.connector.query('SELECT info FROM t1 WHERE (filter & '+bitWiseAndValue+') = filter', function(err) {
if (err) {return console.log(err);}
// success actions
});