Las funciones de cadenas de carácteres retornan
NULL
si la longitud del resultado es mayor que
el valor de la variable de sistema
max_allowed_packet
. Consulte
Sección 7.5.2, “Afinar parámetros del servidor”.
Para funciones que operan en posiciones de cadenas de carácteres, la primera posición es la 1.
-
ASCII(
str
)Retorna el valor numérico del carácter más a la izquierda de la cadena de carácteres
str
. Retorna 0 sistr
es la cadena vacía. RetornaNULL
sistr
esNULL
.ASCII()
funciona para carácteres con valores numéricos de 0 a 255.mysql> SELECT ASCII('2'); -> 50 mysql> SELECT ASCII(2); -> 50 mysql> SELECT ASCII('dx'); -> 100
Consulte la función
ORD()
. -
BIN(
N
)Retorna una representación de cadena de carácteres del valor binario de
N
, dondeN
es un número muy largo (BIGINT
) . Esto es equivalente aCONV(
N
,10,2). RetornaNULL
siN
esNULL
.mysql> SELECT BIN(12); -> '1100'
-
BIT_LENGTH(
str
)Retorna la longitud de la cadena de carácteres
str
en bits.mysql> SELECT BIT_LENGTH('text'); -> 32
-
CHAR(
N
,...)CHAR()
interpreta los argumentos como enteros y retorna la cadena de carácteres que consiste en los carácteres dados por los códigos de tales enteros. Los valoresNULL
no se tienen en cuenta.mysql> SELECT CHAR(77,121,83,81,'76'); -> 'MySQL' mysql> SELECT CHAR(77,77.3,'77.3'); -> 'MMM'
-
CHAR_LENGTH(
str
)Retorna la longitud de la cadena de carácteres
str
, medida en carácteres. Un carácter de múltiples bytes cuenta como un sólo carácter. Esto significa que para una cadena de carácteres que contiene cinco carácteres de dos bytes,LENGTH()
retorna10
, mientrasCHAR_LENGTH()
returna5
. -
CHARACTER_LENGTH(
str
)CHARACTER_LENGTH()
es sinónimo deCHAR_LENGTH()
. -
COMPRESS(
string_to_compress
)Comprime una cadena de carácteres. Esta función necesita que MySQL se compile con una biblioteca de compresión como
zlib
. De otro modo, el valor retornado siempre esNULL
. La cadena comprimida puede descomprimirse conUNCOMPRESS()
.mysql> SELECT LENGTH(COMPRESS(REPEAT('a',1000))); -> 21 mysql> SELECT LENGTH(COMPRESS('')); -> 0 mysql> SELECT LENGTH(COMPRESS('a')); -> 13 mysql> SELECT LENGTH(COMPRESS(REPEAT('a',16))); -> 15
Los contenidos comprimidos se almacenan de la siguiente forma:
-
Cadenas vacías se almacenan como cadenas vacías.
-
Cadenas no vacías se almacenan como longitud de cuatros bytes de la cadena descomprimida (los bytes más bajos primero), seguido de la cadena comprimida. Si la cadena acaba con un espacio, se añade un carácter '
.
' para evitar problemas con eliminación de espacios finales al almacenar en una columnaCHAR
oVARCHAR
. (El uso deCHAR
oVARCHAR
para almacenar cadenas comprimidas no se recomienda. Es mejor usar una columnaBLOB
.)
-
-
CONCAT(
str1
,str2
,...)Retorna la cadena resultado de concatenar los argumentos. Retorna
NULL
si algúna argumento esNULL
. Puede tener uno o más argumentos. Si todos los argumentos son cadenas no binarias, el resultado es una cadena no binaria. Si los argumentos incluyen cualquier cadena binaria, el resultado es una cadena binaria. Un argumento numérico se convierte a su forma de cadena binaria equivalente; si quiere evitarlo puede usar conversión de tipos explícita, como en este ejemplo:SELECT CONCAT(CAST(int_col AS CHAR), char_col)
mysql> SELECT CONCAT('My', 'S', 'QL'); -> 'MySQL' mysql> SELECT CONCAT('My', NULL, 'QL'); -> NULL mysql> SELECT CONCAT(14.3); -> '14.3'
-
CONCAT_WS(
separator
,str1
,str2
,...)CONCAT_WS()
significa CONCAT With Separator (CONCAT con separador) y es una forma especial deCONCAT()
. El primer argumento es el separador para el resto de argumentos. El separador se añade entre las cadenas a concatenar. El separador puede ser una cadena como el resto de argumentos. Si el separador esNULL
, el resultado esNULL
. La función evita valoresNULL
tras el argumento separador.mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name'); -> 'First name,Second name,Last Name' mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name'); -> 'First name,Last Name'
En MySQL 5.0,
CONCAT_WS()
no evita cadenas vacías. (Sin embargo, evitaNULL
s.) -
CONV(
N
,from_base
,to_base
)Convierte números entre diferentes bases numéricas. Retorna una representación de cadena de carácters para el número
N
, convertido de basefrom_base
a baseto_base
. RetornaNULL
si algún argumento esNULL
. El argumentoN
se interpreta como entero, pero puede especificarse como un entero o cadena. La base mínima es2
y la máxima es36
. Suto_base
es un número negativo,N
se trata como un número con signo. De otro modo,N
se trata como sin signo.CONV()
funciona con precisión de 64-bit.mysql> SELECT CONV('a',16,2); -> '1010' mysql> SELECT CONV('6E',18,8); -> '172' mysql> SELECT CONV(-17,10,-18); -> '-H' mysql> SELECT CONV(10+'10'+'10'+0xa,10,10); -> '40'
-
ELT(
N
,str1
,str2
,str3
,...)Retorna
str1
siN
=1
,str2
ifN
=2
, y así. RetornaNULL
siN
es menor que1
o mayor que el número de argumentos.ELT()
es el complemento deFIELD()
.mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo'); -> 'ej' mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo'); -> 'foo'
-
EXPORT_SET(
bits
,on
,off
[,separator
[,number_of_bits
]])Retorna una cadena en que para cada bit del valor
bits
, puede obtener una cadenaon
y para cada bit reasignado obtiene una cadenaoff
. Los bits enbits
se examinan de derecha a izquierda (de bits menores a mayores). Las cadenas se añaden al resultado de izquierda a derecha, separados por la cadenaseparator
(siendo el carácter por defecto la coma ',
'). El número de bits examinados se obtiene pornumber_of_bits
(por defecto 64).mysql> SELECT EXPORT_SET(5,'Y','N',',',4); -> 'Y,N,Y,N' mysql> SELECT EXPORT_SET(6,'1','0',',',10); -> '0,1,1,0,0,0,0,0,0,0'
-
FIELD(
str
,str1
,str2
,str3
,...)Retorna el índice de
str
en la listastr1
,str2
,str3
,...
. Retorna0
si no se encuentrastr
.Si todos los argumentos de
FIELD()
son cadenas, todos los argumentos se comparan como cadenas. Si todos los argumentos son números, se comparan como números. De otro modo, los argumentos se comparan como números con doble precisión.Si
str
esNULL
, el valor retornado es0
porqueNULL
falla en comparaciones de comparación con cualquier valor.FIELD()
es el complemento deELT()
.mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 2 mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo'); -> 0
-
FIND_IN_SET(
str
,strlist
)Retorna un valor en el rango de 1 a
N
si la cadenastr
está en la lista de cadenasstrlist
consistente deN
subcadenas. Una lista de cadenas es una cadena compuesta de subcadenas separadas por carácteres ',
' . Si el primer argumento es una cadena constante y el segundo es una columna de tipoSET
, la funciónFIND_IN_SET()
está optimizada para usar aritmética de bit. Retorna 0 sistr
no está enstrlist
o sistrlist
es la cadena vacía. RetornaNULL
si algún argumento esNULL
. Esta función no funciona apropiadamente si el primer argumento contiene un carácter de coma (',
') .mysql> SELECT FIND_IN_SET('b','a,b,c,d'); -> 2
-
HEX(
N_or_S
)Si
N_OR_S
es un número, retorna una cadena representación del valor hexadecimal deN
, dondeN
es un número muy grande (BIGINT
) . Esto es equivalente aCONV(N,10,16)
.Si
N_OR_S
es una cadena, esta función retorna una cadena hexadecimal deN_OR_S
carácteres, donde cada carácter enN_OR_S
se convierte a dos dígitos hexadecimales.mysql> SELECT HEX(255); -> 'FF' mysql> SELECT 0x616263; -> 'abc' mysql> SELECT HEX('abc'); -> 616263
-
INSERT(
str
,pos
,len
,newstr
)Retorna la cadena
str
, con la subcadena comenzando en la posiciónpos
ylen
carácteres reemplazados por la cadenanewstr
. Retorna la cadena original sipos
no está entre la longitud de la cadena. Replaza el resto de la cadena a partir de la posiciónpos
silen
no está dentro de la longitud del resto de la cadena. RetornaNULL
si cualquier argumento es nulo.mysql> SELECT INSERT('Quadratic', 3, 4, 'What'); -> 'QuWhattic' mysql> SELECT INSERT('Quadratic', -1, 4, 'What'); -> 'Quadratic' mysql> SELECT INSERT('Quadratic', 3, 100, 'What'); -> 'QuWhat'
Esta función está preparada para funcionar con múltiples bytes.
-
INSTR(
str
,substr
)Retorna la posición de la primera ocurrencia de la subcadena
substr
en la cadenastr
. Es lo mismo que la forma de dos argumentos deLOCATE()
, excepto que el orden de los argumentos es inverso.mysql> SELECT INSTR('foobarbar', 'bar'); -> 4 mysql> SELECT INSTR('xbar', 'foobar'); -> 0
Esta función puede trabajar con múltiples bytes. En MySQL 5.0, sólo es sensible a mayúsculas si uno de los argumentos es una cadena binaria.
-
LCASE(
str
)LCASE()
es sinónimo deLOWER()
. -
LEFT(
str
,len
)Retorna los
len
carácteres empezando por la izquierda de la cadenastr
.mysql> SELECT LEFT('foobarbar', 5); -> 'fooba'
-
LENGTH(
str
)Retorna la longitud de la cadena
str
, medida en bytes.Un carácter multi-byte cuenta como múltiples bytes. Esto significa que para cadenas que contengan cinco carácteres de dos bytes,LENGTH()
retorna 10, mientras queCHAR_LENGTH()
retorna 5.mysql> SELECT LENGTH('text'); -> 4
-
LOAD_FILE(
file_name
)Lee el fichero y retorna el contenido como cadena de carácteres. El fichero debe estar localizado en el servidor, debe especificar la ruta completa al fichero, y debe tener el privilegio
FILE
. El fichero debe ser legible por todo el mundo y su tamaño menor amax_allowed_packet
bytes.Si el fichero no existe o no puede ser leído debido a que una de las anteriores condiciones no se cumple, la función retorna
NULL
.mysql> UPDATE
tbl_name
SETblob_column
=LOAD_FILE('/tmp/picture') WHERE id=1; -
LOCATE(
substr
,str
) ,LOCATE(
substr
,str
,pos
)La primera sintaxis retorna la posición de la primera ocurrencia de la subcadena
substr
en la cadenastr
. La segunda sintaxis retorna la posición de la primera ocurrencia de la subcadenasubstr
en la cadenastr
, comanzando en la posiciónpos
. Retorna 0 sisubstr
no está enstr
.mysql> SELECT LOCATE('bar', 'foobarbar'); -> 4 mysql> SELECT LOCATE('xbar', 'foobar'); -> 0 mysql> SELECT LOCATE('bar', 'foobarbar',5); -> 7
Esta función trabaja con múltiples bytes. En MySQL 5.0, es sensible a mayúsculas sólo si algún argumento es una cadena binaria.
-
LOWER(
str
)Retorna la cadena
str
con todos los carácteres cambiados a minúsculas según el mapeo del conjunto de carácteres actual (por defecto es ISO-8859-1 Latin1).mysql> SELECT LOWER('QUADRATICALLY'); -> 'quadratically'
Esta función funciona con múltiples bytes.
-
LPAD(
str
,len
,padstr
)Retorna la cadena
str
, alineado a la izquierda con la cadenapadstr
a una longitud delen
carácteres. Sistr
es mayor quelen
, el valor retornado se acorta alen
carácteres.mysql> SELECT LPAD('hi',4,'??'); -> '??hi' mysql> SELECT LPAD('hi',1,'??'); -> 'h'
-
LTRIM(
str
)Retorna la cadena
str
con los carácteres en blanco iniciales eliminados.mysql> SELECT LTRIM(' barbar'); -> 'barbar'
Esta función trabaja con múltiples bytes.
-
MAKE_SET(
bits
,str1
,str2
,...)Retorna un conjunto de valores (una cadena conteniendo subcadenas separadas por carácteres '
,
' ) consistiendo en cadenas que tienen el bit correspondiente enbits
asignado.str1
se corresponde al bit 0,str2
al bit 1, y así. Los valoresNULL
enstr1
,str2
,...
no se añaden al resultado.mysql> SELECT MAKE_SET(1,'a','b','c'); -> 'a' mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world'); -> 'hello,world' mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world'); -> 'hello' mysql> SELECT MAKE_SET(0,'a','b','c'); -> ''
-
MID(
str
,pos
,len
)MID(
str
,pos
,len
) es sinónimo deSUBSTRING(
str
,pos
,len
). -
OCT(
N
)Retorna una representación en cadena del valor octal de
N
, dondeN
es un número largo (BIGINT
). Es equivalente aCONV(N,10,8)
. RetornaNULL
siN
esNULL
.mysql> SELECT OCT(12); -> '14'
-
OCTET_LENGTH(
str
)OCTET_LENGTH()
es sinónimo deLENGTH()
. -
ORD(
str
)Si el carácter más a la izquierda de la cadena
str
es un carácter multi-byte , retorna el código de ese carácter, calculado a partir del valor numérico de sus bytes usando esta fórmula:(1st byte code) + (2nd byte code * 256) + (3rd byte code * 256^2) ...
Si el caráctar más a la izquierda no es multi-byte ,
ORD()
retorna el mismo valor que la funciónASCII()
.mysql> SELECT ORD('2'); -> 50
-
POSITION(
substr
INstr
)POSITION(
substr
INstr
) es sinónimo deLOCATE(
substr
,str
). -
QUOTE(
str
)Acota una cadena para producir un resultado que puede usarse como un valor con carácteres de escape en un comando SQL. La cadena se retorna rodeado por comillas sencillas y con cada instancia de comilla sencilla ('
'
'), antibarra ('\
'), ASCII NUL, y Control-Z predecidos por una antibarra. Si el argumento esNULL
, el valor de retorno es la palabra “NULL” sin comillas alrededor.mysql> SELECT QUOTE('Don\'t!'); -> 'Don\'t!' mysql> SELECT QUOTE(NULL); -> NULL
-
REPEAT(
str
,count
)Retorna una cadena consistente de la cadena
str
repetidacount
veces. Sicount
<= 0, retorna una cadena vacía. RetornaNULL
sistr
ocount
sonNULL
.mysql> SELECT REPEAT('MySQL', 3); -> 'MySQLMySQLMySQL'
-
REPLACE(
str
,from_str
,to_str
)Retorna la cadena
str
con todas las ocurrencias de la cadenafrom_str
reemplazadas con la cadenato_str
.mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww'); -> 'WwWwWw.mysql.com'
Esta función trabaja con múltiples bytes.
-
REVERSE(
str
)Retorna la cadena
str
con el orden de los carácteres invertido.mysql> SELECT REVERSE('abc'); -> 'cba'
Esta función trabaja con múltiples bytes.
-
RIGHT(
str
,len
)Retorna los
len
carácteres de la derecha de la cadenastr
.mysql> SELECT RIGHT('foobarbar', 4); -> 'rbar'
Esta función trabaja con múltiples bytes.
-
RPAD(
str
,len
,padstr
)Retorna la cadena
str
, alineada a la derecha con la cadenapadstr
con una longitud delen
carácteres. Sistr
es mayor quelen
, el valor de retorno se corta alen
carácteres.mysql> SELECT RPAD('hi',5,'?'); -> 'hi???' mysql> SELECT RPAD('hi',1,'?'); -> 'h'
Esta función trabaja con múltiples bytes.
-
RTRIM(
str
)Retorna la cadena
str
con los espacios precedentes eliminados.mysql> SELECT RTRIM('barbar '); -> 'barbar'
Esta función trabaja con múltiples bytes.
-
SOUNDEX(
str
)Retorna una cadena soudex de
str
. Dos cadenas que suenen igual deben tener cadenas soundex idénticas. Una cadena soundex estándar tiene cuatro carácteres de longitud, pero la funciónSOUNDEX()
retorna una cadena arbitráriamente larga. Puede usarSUBSTRING()
en el resultado para obtener una cadena soundex estándar. Todos los carácteres no alfabéticos enstr
se ignoran. Todos los carácteres alfabéticos internacionales fuera del rango A-Z se tratan como vocales.mysql> SELECT SOUNDEX('Hello'); -> 'H400' mysql> SELECT SOUNDEX('Quadratically'); -> 'Q36324'
Nota: Esta función implementa el algoritmo Soundex original, no la versión más popular (descrita por D. Hnuth). La diferencia es que la versión original descarta vocales primero y luego duplicados, mientras que la versión mejorada descarta primero los duplicados y luego las vocales.
-
expr1
SOUNDS LIKEexpr2
Es lo mismo que
SOUNDEX(
expr1
) = SOUNDEX(expr2
). -
SPACE(
N
)Retorna la cadena consistente en
N
carácteres blancos.mysql> SELECT SPACE(6); -> ' '
-
SUBSTRING(
str
,pos
) ,SUBSTRING(
str
FROMpos
),SUBSTRING(
str
,pos
,len
) ,SUBSTRING(
str
FROMpos
FORlen
)Las formas sin el arguemnto
len
retornan una subcadena de la cadenastr
comenzando en la posiciónpos
. Las formas con el argumentolen
retornan una subcadena de longitudlen
a partir de la cadenastr
, comenzando en la posiciónpos
.Las formas que usanFROM
son sintaxis SQL estándard. En MySQL 5.0, es posible usar valores negativos parapos
. En este caso, el inicio de la subcadena sonpos
carácteres a partir del final de la cadena, en lugar del principio. Un valor negativo puede usarse parapos
en cualquier de las formas de esta función.mysql> SELECT SUBSTRING('Quadratically',5); -> 'ratically' mysql> SELECT SUBSTRING('foobarbar' FROM 4); -> 'barbar' mysql> SELECT SUBSTRING('Quadratically',5,6); -> 'ratica' mysql> SELECT SUBSTRING('Sakila', -3); -> 'ila' mysql> SELECT SUBSTRING('Sakila', -5, 3); -> 'aki' mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2); -> 'ki'
Esta función trabaja con múltiples bytes.
Tenga en cuenta que si usa un valor menor a 1 para
len
, el resultado siempre es una cadena vacía.SUBSTR()
es sinónimo deSUBSTRING()
. -
SUBSTRING_INDEX(
str
,delim
,count
)Retorna la subcadena de la cadena
str
antes decount
ocurrencias del delimitadordelim
. Sicount
es positivo, todo a la izquierda del delimitador final (contando desde la izquierda) se retorna. Sicount
es negativo, todo a la derecha del delimitador final (contando desde la derecha) se retorna.mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2); -> 'www.mysql' mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2); -> 'mysql.com'
Esta función trabaja con múltiples bytes.
-
TRIM([{BOTH | LEADING | TRAILING} [
remstr
] FROM]str
),TRIM(
remstr
FROM]str
)Retorna la cadena
str
con todos los prefijos y/o sufijosremstr
eliminados. Si ninguno de los especificadoresBOTH
,LEADING
, o se daTRAILING
,BOTH
se asumen. Siremstr
es opcional y no se especifica, los espacios se eliminan.mysql> SELECT TRIM(' bar '); -> 'bar' mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx'); -> 'barxxx' mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx'); -> 'bar' mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz'); -> 'barx'
Esta función trabaja con múltiples bytes.
-
UCASE(
str
)UCASE()
es sinónimo deUPPER()
. -
UNCOMPRESS(
string_to_uncompress
)Descomprime una cadena comprimida con la función
COMPRESS()
. Si el argumento no es un valor comprimido, el resultado esNULL
. Esta función necesita que MySQL se compile con una biblioteca de compresión tal comozlib
. De otro modo, el valor de retorno siempre esNULL
.mysql> SELECT UNCOMPRESS(COMPRESS('any string')); -> 'any string' mysql> SELECT UNCOMPRESS('any string'); -> NULL
-
UNCOMPRESSED_LENGTH(
compressed_string
)Retorna la longitud de una cadena comprimida antes de la compresión.
mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT('a',30))); -> 30
-
UNHEX(
str
)Realiza la operación opuesta a
HEX(
str
). Esto es, interpreta cada par de dígitos hexadecimales en el argumento como números y los convierte al carácter representado por el número. El carácteres resultantes se retornan como cadena binaria.mysql> SELECT UNHEX('4D7953514C'); -> 'MySQL' mysql> SELECT 0x4D7953514C; -> 'MySQL' mysql> SELECT UNHEX(HEX('string')); -> 'string' mysql> SELECT HEX(UNHEX('1267')); -> '1267'
-
UPPER(
str
)Retorna la cadena
str
con todos los carácteres cambiados a mayúsculas según el mapeo del conjunto de carácteres actual (por defecto es ISO-8859-1 Latin1).mysql> SELECT UPPER('Hej'); -> 'HEJ'
Esta función trabaja con múltiples bytes.
MySQL convierte automáticamente números a cadenas según es necesario y viceversa.
mysql> SELECT 1+'1'; -> 2 mysql> SELECT CONCAT(2,' test'); -> '2 test'
Si quiere convertir un número a cadena explícitamente, use la
función CAST()
:
mysql> SELECT 38.8, CAST(38.8 AS CHAR); -> 38.8, '38.8'
Si una función de cadenas da una cadena binaria como argumento, la cadena resultante también es binaria. Un número convertido a cadena se trata como cadena binaria (esto es, es sensible a mayúsculas en comparaciones). Esto afecta sólo a comparaciones.
Normalmente, si una expresión en una comparación de cadenas es sensible a mayúsculas, la comparación se realiza con sensibilidad a mayúsculas.
-
expr
LIKEpat
[ESCAPE 'escape-char
']Coincidencia de patrones usando comparación mediante expresiones regulares SQL. Retorna 1 (
TRUE
) o 0 (FALSE
). Siexpr
opat
esNULL
, el resultado esNULL
.El patrón no puede ser una cadena literal. Por ejemplo, puede especificarse como expresión de cadena o columna.
Con
LIKE
puede usar los siguientes dos carácteres comodín en el patrón:Carácter Descrición %
Coincidencia de cualquier número de carácteres, incluso cero carácteres _
Coincide exactemente un carácter mysql> SELECT 'David!' LIKE 'David_'; -> 1 mysql> SELECT 'David!' LIKE '%D%v%'; -> 1
Para testear instancias literales de un carácter comodín, preceda el carácter con el carácter de escape. Si no especifica el carácter
ESCAPE
, se asume '\
' .Cadena Descrición \%
Coincide un carácter ' %
'\_
Coincide un carácter ' _
'mysql> SELECT 'David!' LIKE 'David\_'; -> 0 mysql> SELECT 'David_' LIKE 'David\_'; -> 1
Para especificar un carácter de escape distinto, use la cláusula
ESCAPE
:mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|'; -> 1
Los siguientes dos comandos ilustran que la comparación de cadenas no son sensibles a mayúsculas a no ser que uno de los operandos sea una cadena binaria:
mysql> SELECT 'abc' LIKE 'ABC'; -> 1 mysql> SELECT 'abc' LIKE BINARY 'ABC'; -> 0
En MySQL,
LIKE
se permite en expresiones numéricas. (Esta es una extensión del SQL estándarLIKE
.)mysql> SELECT 10 LIKE '1%'; -> 1
Nota: Debido a que MySQL usa sintaxis de escape C en cadenas (por ejemplo, '
\n
' para representar carácter de nueva línea), debe doblar cualquier '\
' que use en cadenasLIKE
. Por ejemplo, para buscar '\n
', especifíquelo como '\\n
'. Para buscar '\
', especifíquelo como '\\\\
'; esto es debido a que las antibarras se eliminan una vez por el parser y otra vez cuando la coincidencia con el patrón se realiza, dejando una única antibarra para comparar. -
expr
NOT LIKEpat
[ESCAPE 'escape-char
']Es lo mismo que
NOT (
expr
LIKEpat
[ESCAPE 'escape-char
']). -
expr
NOT REGEXPpat
,expr
NOT RLIKEpat
Es lo mismo que
NOT (
expr
REGEXPpat
). -
expr
REGEXPpat
,expr
RLIKEpat
Realiza una comparación de patrones de una expresión de cadena de carácteres
expr
contra un patrónpat
. El patrón puede ser una expresión regular extendida. La sintaxis para expresiones regulares se discute en Apéndice F, Expresiones regulares en MySQL. Retorna 1 siexpr
coincide conpat
, de otro modo retorna 0. Siexpr
opat
esNULL
, el resultado esNULL
.RLIKE
es un sinónimo deREGEXP
, debido a compatibilidad conmSQL
.El patrón no necesita ser una cadena literal. Por ejemplo, puede especificarse como una expresión de cadena o columna.
Nota: Debido a que MySQL usa la sintaxis de escape de C en cadenas (por ejemplo, '
\n
' para representar una nueva línea), de doblar cualquier '\
' que use en sus cadenasREGEXP
.REGEXP
no es sensible a mayúsculas, excepto cuando se usa con cadenas binarias.mysql> SELECT 'Monty!' REGEXP 'm%y%%'; -> 0 mysql> SELECT 'Monty!' REGEXP '.*'; -> 1 mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line'; -> 1 mysql> SELECT 'a' REGEXP 'A', 'a' REGEXP BINARY 'A'; -> 1 0 mysql> SELECT 'a' REGEXP '^[a-d]'; -> 1
REGEXP
yRLIKE
usan el conjunto de carácteres actual (ISO-8859-1 Latin1 por defecto) al decidir el tipo de un carácter. Atención: Estos operadores no pueden trabajar con múltiples bytes. -
STRCMP(
expr1
,expr2
)STRCMP()
retorna 0 si las cadenas son idénticas, -1 si el primer argumento es menor que el segundo según el orden actual, y 1 en cualquier otro caso.mysql> SELECT STRCMP('text', 'text2'); -> -1 mysql> SELECT STRCMP('text2', 'text'); -> 1 mysql> SELECT STRCMP('text', 'text'); -> 0
En MySQL 5.0,
STRCMP()
usa el conjunto de carácteres actual cuando realizac comparaciones. Esto hace el comportamiento de comparaciones por defecto insensible a mayúsculas a no ser que alguno de los operandos sea una cadena binaria.