MySQL convierte automáticamente números a cadenas según es necesario y viceversa.
mysql> SELECT 1+'1'; -> 2mysql> 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 LIKE pat [ESCAPE 'escape-char']
Coincidencia de patrones usando comparación mediante expresiones regulares SQL. Retorna 1 (TRUE) o 0 (FALSE). Si expr o pat es NULL, el resultado es NULL.
El patrón no puede ser una cadena literal. Por ejemplo, puede especificarse como expresión de cadena o columna.
1 // Los métodos equals, equalsIgnoreCase, compareTo y regionMatches de String.
2 import javax.swing.JOptionPane;
3
4 public class CompararString {
5
6 public static void main( String args[] )
7 {
8 String s1 = new String( "hola" ); // s1 es una copia de "hola"
9 String s2 = "adiós";
10 String s3 = "Feliz Cumpleaños";
11 String s4 = "feliz cumpleaños";
12
13 String salida = "s1 = " + s1 + "\ns2 = " + s2 + "\ns3 = " + s3 +
14 "\ns4 = " + s4 + "\n\n";
15
16 // probar igualdad
17 if ( s1.equals( "hola" ) ) // true
18 salida += "s1 es igual a \"hola\"\n";
19 else
20 salida += "s1 es distinta de \"hola\"\n";
21
22 // probar igualdad con ==
23 if ( s1 == "hola" ) // false; no son el mismo objeto
24 salida += "s1 es igual a \"hola\"\n";
25 else
26 salida += "s1 es distinta de \"hola\"\n";
27
28 // probar igualdad (ignorar mayúsculas)
29 if ( s3.equalsIgnoreCase( s4 ) ) // true
30 salida += "s3 es igual a s4\n";
31 else
32 salida += "s3 es distinta de s4\n";
33
34 // probar compareTo
35 salida += "\ns1.compareTo( s2 ) es " + s1.compareTo( s2 ) +
36 "\ns2.compareTo( s1 ) es " + s2.compareTo( s1 ) +
37 "\ns1.compareTo( s1 ) es " + s1.compareTo( s1 ) +
38 "\ns3.compareTo( s4 ) es " + s3.compareTo( s4 ) +
39 "\ns4.compareTo( s3 ) es " + s4.compareTo( s3 ) + "\n\n";
40
41 // probar regionMatches (susceptible a mayúsculas)
42 if ( s3.regionMatches( 0, s4, 0, 5 ) )
43 salida += "Los primeros 5 caracteres de s3 y s4 concuerdan\n";
44 else
45 salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan\n";
46
47 // probar regionMatches (ignorar mayúsculas)
48 if ( s3.regionMatches( true, 0, s4, 0, 5 ) )
49 salida += "Los primeros 5 caracteres de s3 y s4 concuerdan";
50 else
51 salida += "Los primeros 5 caracteres de s3 y s4 no concuerdan";
52
53 JOptionPane.showMessageDialog( null, salida,
54 "Comparaciones entre cadenas", JOptionPane.INFORMATION_MESSAGE );
55
56 System.exit( 0 );
57 }
58
59 } // fin de la clase CompararString
La función strcmp:
//prototipo de strcmpint strcmp (const char *cadena1, const char *cadena2);
Sirve para comparar la cadena cadena1 con la cadena2.
-
Devuelve el valor devuelve 0 si son iguales.
-
Devuelve menor que cero si cadena1 es menor que cadena2.
-
Devuelve mayor que cero si cadena1 es mayor que cadena2.
La función strncmp:
char *strncmp (char *cadena1, const char *cadena2, size_t n)
Sirve para comparar n caracteres entre cadena2 y cadena1.
-
Devuelve el valor devuelve 0 si son iguales.
-
Devuelve menor que cero si cadena1 es menor que cadena2.
-
Devuelve mayor que cero si cadena1 es mayor que cadena2.
Ejemplo:
#include <iostream>using std::cout;using std::endl;#include<cstring>int main(){ char cadena1[] = "Hola A"; char cadena2[]="Hola Z"; cout << "cadena1 es: " << cadena1 << endl; cout << "cadena2 es: " << cadena2 << endl; cout << "strncmp(cadena1,cadena2,4)= " << strncmp(cadena1,cadena2,4)<<endl; cout << "strcmp(cadena1,cadena2)= " << strcmp(cadena1,cadena2)<<endl; cout << "strcmp(cadena2,cadena1)= " << strcmp(cadena2,cadena1)<<endl;
Comparaciones de cadenas
Operación |
Sintaxis |
Devuelve |
Expresión |
Valor |
Igualdad |
Cadena= Cadena |
Booleano |
"abc" = "abc" |
True |
|
|
|
"abc" = "abd" |
False |
Desigualdad |
Cadena# Cadena |
Booleano |
"abc" # "abd" |
True |
|
|
|
"abc" # "abc" |
False |
Mayor que |
Cadena> Cadena |
Booleano |
"abd" > "abc" |
True |
|
|
|
"abc" > "abc" |
False |
Menor que |
Cadena< Cadena |
Booleano |
"abc" < "abd" |
True |
|
|
|
"abc" < "abc" |
False |
Mayor que o igual a |
Cadena>= Cadena |
Booleano |
"abd" >= "abc" |
True |
|
|
|
"abc" >= "abd" |
False |
Menor que o igual a |
Cadena<= Cadena |
Booleano |
"abc" <= "abd" |
True |
|
|
|
"abd" <= "abc" |
False |
Contiene palabra |
Cadena% Cadena |
Booleano |
"Alpha Bravo" % "Bravo" |
True |
|
|
|
"Alpha Bravo" % "ravo" |
False |