【发布时间】:2021-03-08 11:48:47
【问题描述】:
我正在尝试编写一个在 PostgreSQL 中运行查询的脚本。我正在为看起来很简单的事情苦苦挣扎(但不起作用......)。
- 我有一组存储为字符串数组的查询,比如说
query1="SELECT COUNT(id) FROM nodes WHERE label='KeywordList';"
query2="SELECT COUNT(id) FROM nodes WHERE label='AuthorList';"
queries=($query1 $query2)
- 然后,我想通过循环在 PSQL 中运行这个查询:
for query in "${queries[@]}"
do
psql $db_name -c "$query"
done
这给了我以下错误:
ERROR: syntax error at or near "COUNT"
LINE 1: COUNT(id)
^
ERROR: syntax error at or near "FROM"
LINE 1: FROM
^
ERROR: syntax error at or near "nodes"
LINE 1: nodes
^
ERROR: syntax error at or near "WHERE"
LINE 1: WHERE
^
ERROR: syntax error at or near "label"
LINE 1: label='KeywordList';
- 但是,当我将字符串本身提供给 PSQL 时,这会起作用:
psql $db_name -c "$query1"(这会返回给我10)。
我认为这是一个引用问题,或者 Bash 试图理解字符串中的内容...在多次尝试使用双引号、单引号和反引号后,我无法自己解决这个问题。
非常感谢您的帮助,Nelly。
【问题讨论】: