首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Infinity、ActiveRecord和MySQL:存储和比较

Infinity、ActiveRecord和MySQL:存储和比较
EN

Stack Overflow用户
提问于 2009-04-23 17:32:48
回答 1查看 1K关注 0票数 2

我有指定事件成本的用户输入字符串(例如:"$4 for non-members")。我试图解析出开销的上界(和下界)(在本例中为upper == lower == 4.00)。

假设给定的字符串无法解析(可能它是空的)。在这种情况下,我希望能够在数据库中存储事件的最大成本是无穷大(最小为0)。如何使用Mysql和ActiveRecord实现这一点?

我尝试过的:

代码语言:javascript
复制
> e = Event.find(1234)
> e.cost_max = 1.0/0.0
> e.save
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'Infinity' in 'field list': UPDATE `events` SET `cost_max` = Infinity WHERE `id` = 1234

我还尝试将cost_max标记为NULL。这在原则上是可行的。但是,我正在使用Ultrasphinx过滤器来检索其成本范围与搜索范围具有非空交集的事件。由于Ultrasphinx过滤器只接受散列条件(我错了吗?),我的选择仅限于以下内容:

代码语言:javascript
复制
search_params[:filter].merge!(:cost_max => 0.0..99)

也就是说,不允许"OR cost_max is NULL“。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-04-23 17:40:45

如果字段类型是double,似乎可以存储无穷大的值。

代码语言:javascript
复制
VALUE('1e500');

然后就是用它作为比较的上限的问题了。

有关更多信息,请参阅mysql邮件列表中的this thread

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/782781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档