Fix ANY match segments with range queries
This commit is contained in:
parent
c3ec92d14f
commit
3182566526
1 changed files with 16 additions and 13 deletions
|
@ -575,14 +575,18 @@ module.exports.getQuery = (id, prefix, callback) => {
|
||||||
break;
|
break;
|
||||||
case 'number':
|
case 'number':
|
||||||
if (rule.value.range) {
|
if (rule.value.range) {
|
||||||
|
let ruleval = '';
|
||||||
if (rule.value.start) {
|
if (rule.value.start) {
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` >= ?');
|
ruleval = prefix + '`' + rule.columnType.column + '` >= ?';
|
||||||
values.push(rule.value.start);
|
values.push(rule.value.start);
|
||||||
}
|
}
|
||||||
if (rule.value.end) {
|
if (rule.value.end) {
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` < ?');
|
ruleval = (ruleval ? '(' + ruleval + ' AND ' : '') + prefix + '`' + rule.columnType.column + '` < ?' + (ruleval ? ')' : '');
|
||||||
values.push(rule.value.end);
|
values.push(rule.value.end);
|
||||||
}
|
}
|
||||||
|
if (ruleval) {
|
||||||
|
query.push(ruleval);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` = ?');
|
query.push(prefix + '`' + rule.columnType.column + '` = ?');
|
||||||
values.push(rule.value.value);
|
values.push(rule.value.value);
|
||||||
|
@ -592,38 +596,37 @@ module.exports.getQuery = (id, prefix, callback) => {
|
||||||
if (rule.value.range) {
|
if (rule.value.range) {
|
||||||
let start = rule.value.start || '01-01';
|
let start = rule.value.start || '01-01';
|
||||||
let end = rule.value.end || '12-31';
|
let end = rule.value.end || '12-31';
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` >= ?');
|
query.push('(' + prefix + '`' + rule.columnType.column + '` >= ? AND ' + prefix + '`' + rule.columnType.column + '` < ?)');
|
||||||
values.push(getDate('2000-' + start));
|
values.push(getDate('2000-' + start));
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` < ?');
|
|
||||||
values.push(getDate('2000-' + end, true));
|
values.push(getDate('2000-' + end, true));
|
||||||
} else {
|
} else {
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` >= ?');
|
query.push('(' + prefix + '`' + rule.columnType.column + '` >= ? AND ' + prefix + '`' + rule.columnType.column + '` < ?)');
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` < ?');
|
|
||||||
values.push(getDate('2000-' + rule.value.value));
|
values.push(getDate('2000-' + rule.value.value));
|
||||||
values.push(getDate('2000-' + rule.value.value, true));
|
values.push(getDate('2000-' + rule.value.value, true));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'date':
|
case 'date':
|
||||||
if (rule.value.relativeRange) {
|
if (rule.value.relativeRange) {
|
||||||
|
query.push('(' + prefix + '`' + rule.columnType.column + '` >= ? AND ' + prefix + '`' + rule.columnType.column + '` < ?)');
|
||||||
// start
|
// start
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` >= ?');
|
|
||||||
values.push(getDate(getRelativeDate(rule.value.start, rule.value.startDirection)));
|
values.push(getDate(getRelativeDate(rule.value.start, rule.value.startDirection)));
|
||||||
|
|
||||||
// end
|
// end
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` < ?');
|
|
||||||
values.push(getDate(getRelativeDate(rule.value.end, rule.value.endDirection), true));
|
values.push(getDate(getRelativeDate(rule.value.end, rule.value.endDirection), true));
|
||||||
} else if (rule.value.range) {
|
} else if (rule.value.range) {
|
||||||
|
let ruleval = '';
|
||||||
if (rule.value.start) {
|
if (rule.value.start) {
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` >= ?');
|
ruleval = prefix + '`' + rule.columnType.column + '` >= ?';
|
||||||
values.push(getDate(rule.value.start));
|
values.push(getDate(rule.value.start));
|
||||||
}
|
}
|
||||||
if (rule.value.end) {
|
if (rule.value.end) {
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` < ?');
|
ruleval = (ruleval ? '(' + ruleval + ' AND ' : '') + prefix + '`' + rule.columnType.column + '` < ?' + (ruleval ? ')' : '');
|
||||||
values.push(getDate(rule.value.end, true));
|
values.push(getDate(rule.value.end, true));
|
||||||
}
|
}
|
||||||
|
if (ruleval) {
|
||||||
|
query.push(ruleval);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` >= ?');
|
query.push('(' + prefix + '`' + rule.columnType.column + '` >= ? AND ' + prefix + '`' + rule.columnType.column + '` < ?)');
|
||||||
query.push(prefix + '`' + rule.columnType.column + '` < ?');
|
|
||||||
values.push(getDate(rule.value.value));
|
values.push(getDate(rule.value.value));
|
||||||
values.push(getDate(rule.value.value, true));
|
values.push(getDate(rule.value.value, true));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue