You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Phoenix sqlline.py中按UUID过滤查询?

Phoenix 5.0 sqlline.py 中BINARY类型UUID查询的正确写法

问题原因

[B@66e8997c是Java byte数组的默认字符串输出,仅包含类型标识和哈希码,并非实际二进制数据,Phoenix无法解析该格式,因此触发ERROR 602语法错误。

单个UUID过滤的正确写法

有两种可靠方式:

  • 使用Phoenix内置函数UUID_TO_BYTES转换标准UUID字符串:
    SELECT * FROM HOSTED_APPS_METADATA_UUID WHERE UUID = UUID_TO_BYTES('123e4567-e89b-12d3-a456-426614174000');
    
  • 直接传入去掉横杠的十六进制字符串,用BINARY关键字声明:
    SELECT * FROM HOSTED_APPS_METADATA_UUID WHERE UUID = BINARY '123E4567E89B12D3A456426614174000';
    

多UUID参数化查询转换(IN子句)

将日志中的占位符替换为实际UUID的转换表达式即可,示例如下:

  • 基于UUID_TO_BYTES的写法:
    SELECT * FROM HOSTED_APPS_METADATA_UUID WHERE UUID IN (
        UUID_TO_BYTES('123e4567-e89b-12d3-a456-426614174000'),
        UUID_TO_BYTES('987e6543-e21b-43c2-d109-876543210987')
    );
    
  • 基于十六进制二进制值的写法:
    SELECT * FROM HOSTED_APPS_METADATA_UUID WHERE UUID IN (
        BINARY '123E4567E89B12D3A456426614174000',
        BINARY '987E6543E21B43C2D109876543210987'
    );
    

内容的提问来源于stack exchange,提问作者user3458988

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:41:02