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

GridDB Node.js Driver布尔类型列过滤异常问题求助

问题原因及解决方案

错误提示[150012:TQ_COLUMN_NOT_FOUND] No such column true说明Node.js端的SQL解析逻辑没把小写的true识别为布尔常量,反而将其当作列名处理——这是因为不同客户端对SQL布尔常量的语法兼容度有差异:gs_client能识别小写布尔值,但你用的Node.js驱动对布尔常量的格式要求更严格。

你可以用以下几种方式解决:

  • 改用大写布尔常量:
    将查询语句中的true改为TRUE,驱动就能正确识别为布尔常量:

    time_in_zone.query("SELECT * where dstActive = TRUE")
    
  • 用数值替代布尔值:
    由于TDengine的布尔类型底层用1(代表true)和0(代表false)存储,直接用数值查询也能生效:

    time_in_zone.query("SELECT * where dstActive = 1")
    
  • 使用参数化查询(推荐):
    参数化查询不仅能避免这类语法兼容问题,还能防止SQL注入。以TDengine官方Node.js驱动为例,写法如下:

    time_in_zone.query("SELECT * where dstActive = ?", [true])
    

如果要统计当前实行夏令时的时区数量,直接把查询语句改成统计语句即可,比如:

time_in_zone.query("SELECT COUNT(*) as dst_count from Time_In_Zone where dstActive = TRUE")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:07:45