The GLOB
operator is used to match text values
against a pattern. If the search expression can be matched to
the pattern expression, the GLOB
operator will return true (1
). All non-NULL parameter
expressions will be converted to text values. GLOB
is case sensitive, so
'a' GLOB 'A'
is
false.
The syntax of the pattern
expression is based off common command-line wildcards, also
known as file-globbing. The *
character in the pattern will match zero or
more characters in the search expression. The ?
character will match exactly
one of any character, while the list wildcard ( []
) will match exactly one
character from its set of characters. All other characters
within the pattern are taken as literals. GLOB
patterns have no escape
character.
For example, the pattern
'*.xml'
will match all
search expressions that end in the four characters .xml
, while the pattern '??'
will match any text value
that is exactly two characters long. The pattern '[abc]'
will match any single
a
, b
, or c
character.
The list wildcard allows a range
of characters to be specified. For example [a-z]
will match any single
lowercase alphabetic character, while [a-zA-Z0-9]
will match any single alpha-numeric
character, uppercase or lowercase.
You can match any character
except those indicated in a list by
placing a ^
at the beginning
of the list. For example, the pattern [^0-9]
will match any single character except a
numeric character.
To match a literal *
, ?
, or [
, put
them in a list wildcard; for example [*]
or [[]
.
To match a ^
inside a list,
don’t put it first. To match (or not match) a literal ]
inside a list, make it the
first character after the opening [
or [^
. To
match a literal -
inside a
range, make it the last character in the list.
The GLOB
operator is implemented by the glob()
SQL function. As such,
its behavior can be overridden by registering a new glob()
function.