gpt4 book ai didi

从控制台调用时 MySQL 请求返​​回结果,但使用 ActiveRecord 请求时为空

转载 作者:行者123 更新时间:2023-11-29 00:01:19 25 4
gpt4 key购买 nike

我有一个奇怪的问题。我正在使用 Yii2(最新的稳定版)。我有一些用于钻石底座的过滤器的 table 。过滤器之一 r float (Weight)。

当我尝试从 1.1 过滤到 1.2 时 - 我在事件记录的数组中看到了结果。当我尝试请求 1.1 到 1.1(精确重量)时,yii 返回空数组。

我尝试从调试工具栏复制请求,然后在 mysql 控制台中执行它,mysql 正确返回所有结果。

要求:

SELECT `Diamonds`.* FROM `Diamonds` 
LEFT JOIN `DiamondsSpecialGroups`
ON `Diamonds`.`specialGroup` = `DiamondsSpecialGroups`.`id`
WHERE (((((`endPrice` >= 500)
AND (`type` IN (0, 1, 2, 3))) AND ((`active`=1)
AND (`internalBlock`=0)
AND (`frontendHide`=0)))
AND (`Weight`=0.39))
AND (`endPrice` >= '500'))
AND (`endPrice` <= '1323231')
ORDER BY `endPrice`
LIMIT 50

如果我删除

(`Weight`=0.39)

所有结果都在 mysql 和 yii 中播种。

最后一个问题 - 为什么?

最佳答案

= 和 float 很难。

float 永远不会 100% 准确我认为问题可能是 0.39 的两个不同实例彼此之间存在一点点差异。

为了避免这种情况,您可以按照我在下面发布的答案中的建议使用 DECIMAL 而不是 FLOAT。

More elaborate answer.

关于从控制台调用时 MySQL 请求返​​回结果,但使用 ActiveRecord 请求时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669679/

25 4 0