How to Match Columns that Contain a Substring in SQL


Suppose we’re querying a dataset from a SQL table.

Let’s say we want to select all rows where a column contains the substring str. We can use a percent sign % with LIKE to check for substrings in any column.

SELECT * FROM table_name
WHERE col LIKE '%str%' -- Can match "__str__"

If we only want strings that end with the substring str, we can use %str.

SELECT * FROM table_name
WHERE col LIKE '%str' -- Can match "__str"

If we only want strings that start with the substring str, we can use str%.

SELECT * FROM table_name
WHERE col LIKE 'str%' -- Can match "str__"

If we want to match fields that contain any of the possible substrings, we can use multiple WHERE clauses with OR.

SELECT * FROM table_name
WHERE col LIKE '%str1%' -- Can match "__str1__"
   OR col LIKE '%str2%' --       and "__str2__"

If we need all substrings to be present, we can use AND instead of OR.

SELECT * FROM table_name
WHERE col LIKE '%str1%'
  AND col LIKE '%str2%' -- Can match "__str1__str2__"