has substring (SQL/JSON path predicate)


BigQueryDb2 (LUW)MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite20152017201920212023⊘ 3.9.1 - 3.50.0⊘ 2016 - 2022⊘ 12 - 17⚠ 23.6 - 23.9ab⚠ 19c - 23.4a⊘ 12cR1 - 18c⊘ 5.7 - 9.3.0⊘ 10.2 - 12.0.2⊘ 11.5.0 - 12.1.2⊘ 2.0
  1. Empty pattern only matches empty string
  2. Empty pattern matches every string

The following example returns the JSON string foobar, because it has the substring ob.

SELECT JSON_QUERY('["foobar"]'
                 ,'$[*] ? (@ has substring "ob")'
                 )
  FROM …
  • Primer: JSON Path

  • Standard SQL/JSON string matching predicates:

    • starts with

    • like_regex

  • Non-Standard SQL/JSON string matching predicates:

    • like

    • eq_regex

Normative References

The SQL/JSON path predicate has substring is not standardized in ISO/IEC 9075-2:2023.

You can’t catch up on 20 years of SQL evolution in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up and to keep modern-⁠sql.com on your radar.

About the Author

Photo of Markus Winand

Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at.

Buy the Book

Cover of “SQL Performance Explained”: Squirrel running on grass

The essence of SQL tuning in 200 pages

Buy now!
(paperback and/or PDF)

Paperback also available at Amazon.com.

Hire Markus

Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »

Connect with Markus Winand

Subscribe mailinglistsSubscribe the RSS feedMarkus Winand on LinkedInMarkus Winand on XINGMarkus Winand on TwitterMarkus Winand on Bluesky
Copyright 2015-2025 Markus Winand. All righs reserved.
Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR