这是我使用水线的查询
tableSetupGrid.row.add({ nooftables: 1, noofchairspertable: 2, noofblocks: 3, noofrows: 4, noofcolumns: 5, color: 6 });
tableSetupGrid.rows().invalidate().draw()
然后添加'和'返回错误:
var queryObject = {
where: {
or: [
{firstName: {'contains': search}},
{lastName: {'contains': search}},
{email: {'contains': search}},
],
and: [
{authType:'google'},
{dealershipcompany: 11}
]
}
}
我如何正确使用水线中的AND,很明显sails-mysql支持'和',但我不知道是什么导致错误,'或'完美没有问题,我不能链在哪里,因为水线只给我带来了最后的结果。
我正在使用Sails v10.4和sails-mysql v0.11.2,我想要使用它的查询如下:
SELECT * FROM user where(firstName LIKE'%search%'或lastName LIKE'%search%'或email LIKE'%search%')AND(authType ='google'OR dealershipcompany = 11);
它返回的结果是人们拥有goh的authType或经销商公司编号11
答案 0 :(得分:1)
您不必明确指定and
,因为水线将与您作为普通密钥对(waterline docs)所包含的内容完全*匹配
这应该可以解决问题:
var queryObject = {
where: {
or: [
{firstName: {'contains': search}},
{lastName: {'contains': search}},
{email: {'contains': search}},
],
authType: 'google',
dealershipcompany: 11
}
}
这将匹配authType
完全 'google'
且dealership company
完全 11
然后匹配的记录or
中的任何内容。
*我认为水线查询不区分大小写。
修改:已移除错误{}
答案 1 :(得分:0)
我到达这里寻找Waterline中的between
。对范围查询很有用。
下面的代码段有效。也适用于其他criteria modifiers。
userId: { '<=': 100, '>': 10 }
构建查询时可以使用以下修饰符。
'<' / 'lessThan'
'<=' / 'lessThanOrEqual'
'>' / 'greaterThan'
'>=' / 'greaterThanOrEqual'
'!' / 'not'
'like'
'contains'
'startsWith'
'endsWith'