prepared-statement - Couchbase 的准备语句的正确语法是什么?

标签 prepared-statement couchbase sql++

我正在尝试在 Couchbase 7.1 中创建带有命名参数的准备语句,如下所示:

PREPARE index_1 AS SELECT DISTINCT $column FROM bucket_name;
EXECUTE index_1 USING {'column': 'Name'};

我希望接收给定列名具有不同值的 JSON 数组,这可以使用 SQL 语法实现,例如:SELECT DISTINCT Name FROM bucket_name;

我只收到给定的列名称,而不是这个。

如何正确地做到这一点?

最佳答案

命名参数或位置参数只能用于值。 不适用于字段名称或标识符。

以上陈述和结果正确。

如果您想要不同的名称字段值,则必须使用以下内容。

PREPARE index_1 AS SELECT DISTINCT Name FROM bucket_name;
EXECUTE index_1;

或者

PREPARE p1 AS SELECT DISTINCT RAW t.[$column] FROM bucket_name AS t;
EXECUTE p1 USING {'column': 'Name'};

参见N1QL query to select a dynamic key in Couchbae动态字段解释

关于prepared-statement - Couchbase 的准备语句的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74955080/

相关文章:

java - 将参数传递给方法时,强化将查询标记为 sqlInjection

php - 使用 INT 更新数据库表

node.js - 使用 node.js 多次插入 Couchbase

java - 在 couchbase N1Ql @query 中使用 IN 子句或使用 couchbase JPA 中的 findAll(keys)

couchbase - N1QL嵌套json,查询数组内对象内的字段

php - PDO 准备语句插入 1 而不是字符串

php - 为什么使用 mysql 准备好的语句比使用常见的转义函数更安全?

java - 如何让服务层在从数据库中获取任何内容时返回 Mono::error

unicode - 在 Couchbase Java Query DSL 中,如何过滤非 ASCII 的字段值?

go - 如何在go SDK中使用Couchbase N1QL查询扩展