在 postgres 中,我如何使用撇号字符作为文字
In postgres how do i use the apostrophe character as a literal
我正在尝试将角色 ’ 的实例转换为 ’,但不知道该怎么做。
这只是检查我的语法是否正确,但没有改变字符
ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’','’') where name ~ '[’]+';"|psql jthinksearch
UPDATE 7284
如果我不转义 ' 失败:
ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’',''') where name ~ '[’]+';"|psql jthinksearch
ERROR: syntax error at or near "["
LINE 1: ...ease set name = translate(name,'’',''') where name ~ '[’]+';
如果我转义它,它仍然会失败并出现不同的错误
^
ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’','\'') where name ~ '[’]+';"|psql jthinksearch
ERROR: syntax error at or near "["
LINE 1: ...ase set name = translate(name,'’','\'') where name ~ '[’]+';
^
我会用 replace()
:
update musicbrainz.release
set name = replace(name, '’', '''')
where name like '%’%';
要转义单引号,请将其加倍。
我正在尝试将角色 ’ 的实例转换为 ’,但不知道该怎么做。
这只是检查我的语法是否正确,但没有改变字符
ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’','’') where name ~ '[’]+';"|psql jthinksearch
UPDATE 7284
如果我不转义 ' 失败:
ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’',''') where name ~ '[’]+';"|psql jthinksearch
ERROR: syntax error at or near "["
LINE 1: ...ease set name = translate(name,'’',''') where name ~ '[’]+';
如果我转义它,它仍然会失败并出现不同的错误
^
ubuntu@ip-172-31-39-147:~$ echo "update musicbrainz.release set name = translate(name,'’','\'') where name ~ '[’]+';"|psql jthinksearch
ERROR: syntax error at or near "["
LINE 1: ...ase set name = translate(name,'’','\'') where name ~ '[’]+';
^
我会用 replace()
:
update musicbrainz.release
set name = replace(name, '’', '''')
where name like '%’%';
要转义单引号,请将其加倍。