轉載至:postgresql字符轉義
前言
在PostgreSQL 9之前的版本中,可以直接使用反斜杠\
進行轉義;比如:\b表示退格, \n表示換行, \t表示水平制表符,\r標示回車,\f表示換頁。除此之外還支持\digits和\xhexdigits,分別表示轉義八進制和十六進制數據。
但是在PostgreSQL 9之后的版本,反斜杠已經變成了普通字符;如果想要使用反斜杠來轉義字符,就必須在需要轉義的字符串前面加上E(E就是Escape),如下:
select E'張\t小明';
對單引號的兩種轉義方式
在SQL標准中字符串是用單引號括起來的,而在PostgreSQL中遵守了該標准,雙引號則是用來表示變量的,如果在字符串中需要使用到單引號,就需要對其進行轉義。
方式一:使用E和反斜杠進行轉義
select E'\'233';
方式二:直接用一個單引號來轉義單引號
select '''233';
這兩種方式都能得到'233
的結果而不會報錯,第二種方式比較簡單,也可以通過修改standard_conforming_strings
參數的值來讓反斜杠從普通字符變回轉義字符:
查詢並修改該參數的值:
show standard_conforming_strings;
SET standard_conforming_strings = on;
SET standard_conforming_strings = off;
當該參數的值為off時就可以直接使用反斜杠作為轉義字符里,如下:
select '\'233';
將會得到'233
的結果而不會報錯。