我尝试解码AWS Redshift中的URL。当我在SQL Workbench上运行以下代码时,它完全没问题。但是,当我通过psycopg2使用相同的代码时,它给了我错误消息ProgrammingError: syntax error at or near "D" LINE 35: ,'%5D',']')) as ...
码:
SELECT *,
REPLACE(LEFT(CONCAT(SUBSTRING(REGEXP_SUBSTR(t1.url, 'keywords=([a-zA-Z0-9]+[%+])*[a-zA-Z0-9]*') from 10), t1.extracted_search_value), 100),'%5C','\\') as parsed_search from new_table t1
LIMIT 10
如果你在python中使用以下SQL它应该工作。我用psycopg2测试了它
基本上你的SQL中有两个反斜杠,Postgres文档有
如果需要输入文字反斜杠,请使用\\
我用\\
替换了代码中的\\\\
SELECT *,
REPLACE(LEFT(CONCAT(SUBSTRING(REGEXP_SUBSTR(t1.url, 'keywords=([a-zA-Z0-9]+[%+])*[a-zA-Z0-9]*') from 10),
t1.extracted_search_value), 100),'%5C','\\\\') as parsed_search from new_table t1
LIMIT 10
有关更多说明,请参阅第9.7.3节。 POSIX正则表达式在以下链接https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-LIKE
如果这可以解决您的问题,请告诉我。