Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Alguien sabe por que comprar numeros con cadenas en mysql no es consistente

Estas en el tema de Alguien sabe por que comprar numeros con cadenas en mysql no es consistente en el foro de Mysql en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original select '1' = 1 ............. true select '1x' = 1 ............ true cuando este ultimo debe ser falso. en ...
  #1 (permalink)  
Antiguo 04/05/2013, 15:03
Avatar de rocha7778  
Fecha de Ingreso: mayo-2013
Ubicación: Cartagena Colombia
Mensajes: 79
Antigüedad: 10 años, 11 meses
Puntos: 1
Pregunta Alguien sabe por que comprar numeros con cadenas en mysql no es consistente

Código MySQL:
Ver original
  1. select '1'=1.............true
  2. select '1x'=1............true cuando este ultimo debe ser falso.

en mi investigacion previa se que mysql hace una conversion de tipo, pero no encontre nada de convertir numeros mezclados con letras

Última edición por gnzsoloyo; 04/05/2013 a las 15:21 Razón: SQL mal etiquetado. Usar Highlight "MySQL"
  #2 (permalink)  
Antiguo 04/05/2013, 15:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Alguien sabe por que comprar numeros con cadenas en mysql no es consistent

Creo que si te lo plantas así, la cosa se entiende mejor:
Código MySQL:
Ver original
  1. mysql> SELECT '1x'=1, 'x1x'=1,  '1xx'=1,  'xx1'=1, '1xx1' = 1, '123xxx30' = 123;
  2. +--------+---------+---------+---------+------------+------------------+
  3. | '1x'=1 | 'x1x'=1 | '1xx'=1 | 'xx1'=1 | '1xx1' = 1 | '123xxx30' = 123 |
  4. +--------+---------+---------+---------+------------+------------------+
  5. |      1 |       0 |       1 |       0 |          1 |                1 |
  6. +--------+---------+---------+---------+------------+------------------+
  7. 1 row in set, 6 warnings (0.00 sec)
Como verás, siempre que el primer caracter sea un número, hace una conversión implícita a numero, omitiendo todo lo que siga al numero reconocido. Pero si el caracter es una letra, la conversión es como caracter.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: cadenas, numeros, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:17.