SQLite Like % and _

Francisc picture Francisc · Sep 6, 2011 · Viewed 96.7k times · Source

I can't figure out what the underscore character does in an SQLite like statement. The wildcard character, %, is probably the same as in most other SQL databases.

So, what does the _ character do?

Answer

Benoit picture Benoit · Sep 6, 2011

It is standard SQL that in LIKE expressions:

  • % matches any sequence of characters, including an empty one. It is equivalent to .* in a regular expression.
  • _ matches a single character. It is equivalent to . in a regular expression.
  • You can choose a character for escaping %, _ and itself itself with:

    ... WHERE expr LIKE 'a_b%c\\d\%\_' ESCAPE '\'
    

    This will match a×b×××c\d%_ or a×bc\d%_ but not abc\d%_ nor a×b×××cd%_.

Additionnally with SQLite you have the GLOB keyword which behaves exactly the same way, except that % becomes * and _ becomes ?.