top of page



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;

4 public class CompararString {

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.

  1. Devuelve el valor devuelve 0 si son iguales.

  2. Devuelve menor que cero si cadena1 es menor que cadena2.

  3. 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.

  1. Devuelve el valor devuelve 0 si son iguales.

  2. Devuelve menor que cero si cadena1 es menor que cadena2.

  3. 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

 

3.4.6 COMPARACIONES EN CADENAS

bottom of page