gpt4 book ai didi

mysql - Infinity、ActiveRecord 和 MySQL : storage and comparison

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:15 24 4
gpt4 key购买 nike

我有指定事件费用的用户输入字符串(例如:“非成员(member) 4 美元”)。我正在尝试解析成本的上限(和下限)(在示例中,upper == lower == 4.00)。

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

我尝试过的:

> 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

我也试过用 NULL 标记 cost_max。这原则上有效。但是,我正在使用 Ultrasphinx 过滤器来检索成本范围与搜索范围有非空交集的事件。由于 Ultrasphinx 过滤器只接受哈希条件(我错了吗?),我的选择仅限于此:

search_params[:filter].merge!(:cost_max => 0.0..99)

意思是,不允许“OR cost_max is NULL”。

有什么想法吗?

最佳答案

如果字段类型是double,那么您似乎可以存储无限值。

VALUE('1e500');

然后只需将其用作比较的上限即可。

有关详细信息,请参阅 this thread在 mysql 邮件列表中。

关于mysql - Infinity、ActiveRecord 和 MySQL : storage and comparison,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com