由网友(不讨喜)分享简介:我正在尝试使用CRC32随机化Sphinx查询中的结果,该查询已经具有多个嵌套顺序,例如Select CRC32(Field) as Random from Index Order by Premium,Weight(),Random但是,我拥有的唯一字段是reference。它是一个整数,因此通过CRC32随机化为0...![名校苏教版语文上册1 6年级期末测试卷火热下载中](https://p.xsw88.cn/allimgs/daicuo/20230903/4712.png)
我正在尝试使用CRC32
随机化Sphinx查询中的结果,该查询已经具有多个嵌套顺序,例如
Select CRC32(Field) as Random from Index Order by Premium,Weight(),Random
reference
。它是一个整数,因此通过CRC32随机化为0
。
![名校苏教版语文上册1 6年级期末测试卷火热下载中](https://p.xsw88.cn/allimgs/daicuo/20230903/4712.png)
我在我的Sphinx配置中选择了它Select...
引用as Randomizer...
然后将其指定为字符串,这样我就可以在SELECT中使用它:
sql_field_string = Randomizer
因此它将‘转换’为文本。
然而,当我运行时:
``从按溢价、权重()、随机数排序的索引中选择CRC32(随机器)作为随机`
我在Navicat中收到警报,因为弹出的"3997755376"不是有效的整数值。我不确定这是CRC32限制还是Navicat。
推荐答案
听起来确实像是水猫问题。SPHINX中的CRC32产生一个无符号32位整数。
在内部,狮身人面像将其用作BIGINT
已修复#1643,CRC32()现在在BIGINT上下文中被正确评估为无符号
从2.2.10开始-至少是发行版,这可能会让Navicat感到困惑。
如果您将其存储在一个属性中,无论如何,都可以在索引时执行(使用MySQL处理它!),而不是在查询时执行它。
sql_query = Select id,CRC32(reference) as Randomizer...
sql_uint_string = Randomizer
相关推荐
最新文章