1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 07:08:01 +00:00

Add Two Ways To Escape A Quote In A String as a Postgres til

This commit is contained in:
jbranchaud
2021-07-21 19:38:05 -05:00
parent 8d951a7c77
commit c5acd10b3a
2 changed files with 42 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud).
_1141 TILs and counting..._
_1142 TILs and counting..._
---
@@ -630,6 +630,7 @@ _1141 TILs and counting..._
- [Truncate Tables With Dependents](postgres/truncate-tables-with-dependents.md)
- [Turning Timing On](postgres/turn-timing-on.md)
- [Two Ways To Compute Factorial](postgres/two-ways-to-compute-factorial.md)
- [Two Ways To Escape A Quote In A String](postgres/two-ways-to-escape-a-quote-in-a-string.md)
- [Types By Category](postgres/types-by-category.md)
- [Union All Rows Including Duplicates](postgres/union-all-rows-including-duplicates.md)
- [Use A psqlrc File For Common Settings](postgres/use-a-psqlrc-file-for-common-settings.md)

View File

@@ -0,0 +1,40 @@
# Two Ways To Escape A Quote In A String
String literals in PostgreSQL have to be wrapped in single quotes. This can be
tricky if you are faced with writing out a query using a string that contains a
single quote.
```sql
> select 'who's on first?';
...
```
The query won't execute because it is waiting for you to close the second set
of quotes.
I know of two ways to handle this situation.
The first is to put two single quotes back to back. The first will cause the
second to be escaped so that the quote shows up in the string.
```sql
> select 'who''s on first?';
?column?
-----------------
who's on first?
(1 row)
```
The second is to prepend the string with [the `E`
character](https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS)
to allow escape sequences in strings.
```sql
> select E'who\'s on first?';
?column?
-----------------
who's on first?
(1 row)
```
[source](https://stackoverflow.com/a/12320729)