【问题标题】:InfluxDB placeholder "Empty bound parameter"InfluxDB 占位符“空绑定参数”
【发布时间】:2021-09-07 10:36:35
【问题描述】:

我正在努力使用占位符格式化 InfluxDB 查询。

这里我使用多个占位符进行查询。 这些值在占位符对象中定义,如下所示,

let query = `SELECT grid_ref_x, grid_ref_y, label FROM position
WHERE "label" = $<label> and time >= $<from> - $<interval>`;

const placeholders = {label: 'person', from: 'now()', interval: '5m'};
const resp = await influx.query(query, { placeholders });

发送后,error 400 - error parsing query: empty bound parameter

在错误中,我可以看到 GET 请求,其中似乎 Influx 库已正确格式化“params”下的占位符。

/query?p=root&u=root&db=heatmap&epoch=&q=SELECT grid_ref_x, grid_ref_y, label FROM position WHERE label = $<label> and time >= $<from> - $<interval>&rp=&params={"from":"now()","interval":"5h","label":"person"}

如何正确格式化我的查询?

【问题讨论】:

    标签: sql node.js get influxdb sqlbindparameter


    【解决方案1】:

    你有没有尝试过改变

    let query = `SELECT grid_ref_x, grid_ref_y, label FROM position
    WHERE "label" = $<label> and time >= $<from> - $<interval>`;
    

    let query = `SELECT grid_ref_x, grid_ref_y, label FROM position
    WHERE "label" = $label and time >= $from - $interval`;
    

    不同之处在于您使用 $variable_name 而不是 $ 引用占位符或绑定参数。假设您使用的是 node_influx,您可以删除标签上的双引号,它仍然可以工作。

    我将此 PR 用作参考https://github.com/node-influx/node-influx/issues/587

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多