diff --git a/README.md b/README.md index 62caf8b..c79d9a9 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ smart people at [Hashrocket](http://hashrocket.com/). - [Configure The Timezone](postgres/configure-the-timezone.md) - [Count Records By Type](postgres/count-records-by-type.md) - [Extracting Nested JSON Data](postgres/extracting-nested-json-data.md) +- [String Contains Another String](postgres/string-contains-another-string.md) - [Timestamp Functions](postgres/timestamp-functions.md) - [Toggling The Pager In PSQL](postgres/toggling-the-pager-in-psql.md) - [Turning Timing On](postgres/turning-timing-on.md) diff --git a/postgres/string-contains-another-string.md b/postgres/string-contains-another-string.md new file mode 100644 index 0000000..2714596 --- /dev/null +++ b/postgres/string-contains-another-string.md @@ -0,0 +1,26 @@ +# String Contains Another String + +You can check if a string *contains* another string using the `position` +function. + +```sql +> select position('One' in 'One Two Three'); + position +---------- + 1 +``` + +It returns the 1-based index of the first character of the first match of +that substring. + +```sql +> select position('Four' in 'One Two Three'); + position +---------- + 0 +``` + +If the substring doesn't appear within the string, then the result is 0. + +Thus, you can determine if a string *contains* another string by checking if +the value resulting from `position` is greater than 0.