【发布时间】:2014-05-15 12:24:02
【问题描述】:
我有以下用于 SQL 的 SELECT 语句。
SELECT TransAmount FROM STOCK WHERE TransAmount between 100 and 110;
但是,此语句会从 querymongo.com 生成错误。它说“解析 MySQL 查询失败:由于无法识别的运算符而无法解析 WHERE 子句”。我假设它在谈论 between 子句。
如果我错了,请纠正我,但是这条 SQL 语句是否与上面的语句完全相同?
SELECT TransAmount FROM STOCK WHERE TransAmount > 100 and TransAmount < 110;
此语句生成以下 MongoDB 代码。
db.STOCK.find({
"TransAmount": {
"$gt": 100,
"$lt": 110
}
}, {
"TransAmount": 1
});
看起来 MongoDB 没有“介于”运算符。 MongoDB 是否使用不同的关键字处理范围内的选择,还是必须像这样设置它 $gt/%lt?
【问题讨论】:
-
你的2个语句是一样的...
-
原始 SQL 不能很好地转换为 MongoDB 等解决方案。你真正想做的是什么?您的数据目前的结构如何?使用 NoSQL 解决方案的原因通常意味着做事与以前不同。否则没有意义。
-
我觉得你的第一句话应该是
SELECT TransAmount FROM STOCK WHERE TransAmount BETWEEN 100 AND 110; -
Between 只是你在第二个查询中所做的一个快捷方式,一个非标准的查询
-
酷。您想将其发布为答案并获得一些虚假的互联网积分吗?
标签: mysql sql performance mongodb syntax