node.js - IN()表达式中的nodejs bigquery参数化查询
问题描述
我正在尝试使用 npm 模块运行参数化查询@google-cloud/bigquery
。像这样的东西:
SELECT * FROM myTable WHERE id IN (@ids);
我不知道 bigQuery 期望参数 id 的格式如何。
我的options.params
样子是这样的:
{ ids: '"1234", "4567"'}
但我没有得到任何结果。我知道有结果,我可以在 bigquery 中看到它们,如果我删除参数并注入字符串就可以了。
看起来很简单,但我不知道为什么它不起作用,有谁愿意帮助我吗?
先感谢您
解决方案
当然,我一发布问题就找到了解决方案……感谢这个帖子!需要做体操...
因此,只要参数是一个字符串,例如:
'1234,5678'
我们需要做:
WHERE id IN UNNEST(REGEXP_EXTRACT_ALL(@ids,"[0-9a-zA-Z]+"))
REGEXP_EXTRACT_ALL - 返回一个数组
UNNEST - 如上面链接中所述,将 IN 子句的数组展平。
推荐阅读
- java - Java XML Transformer Node to String remove namespace
- java - 如何将凭证传递给 Translation API v3?
- node.js - 运行`npx react-native init的问题
- azure - Azure 文件共享的 POSIX 权限
- python - 如何在python 3中将png文件添加到word文档中
- mongodb - $divide 嵌入文档的元素 - MongoDB 聚合
- javascript - JS Express 获取参数问题
- mysql - `desc` 命令在 innodb 内部如何工作?
它会扫描整个 information_schema 吗?或者它只是显示表格文件中某个标题的数据?
关于 mysql ( https://dev.mysql.com/doc/refman/8.0/en/show-colum
- transactions - Weld 和 junit,没有事务管理器
- php - 如何使用 htaccess 从子 URL 重写到子目录?