我有这样的东西:
UPDATE table SET column=REGEXP_REPLACE(column, E'\[(.*)\]$', '');
这个查询没有问题,但是当我想从控制台来做这个问题时,比如:
psql -U postgres db -c "UPDATE table SET column=REGEXP_REPLACE(column, E'\\[(.*)\\]$', '');"
我认为转义某些字符有问题,但我无法处理。
最佳答案
假设有一个类Unix的shell,作为传递带有-c
和复杂的多级引号的查询的替代方法,可以使用heredoc语法在标准输入中以原始形式传递它:
$ psql db << EOF
UPDATE table SET column=REGEXP_REPLACE(column, E'\[(.*)\]$', '');
EOF