Si defino una variable como set @a = "1";
. ¿Cómo puedo ver que @a es una cadena?Obtenga el tipo de una variable en MySQL
Respuesta
No se puede determinar el tipo de variable en MySQL.
Como alternativa, puede CAST()
fácilmente su variable en el tipo que desee:
@a = CAST(123 AS CHAR);
Más información y ejemplos sobre fundición en el Manual de MySQL:
PUEDES determinar el tipo de una variable en MySQL. Ver mi respuesta a continuación. – 5lava
PUEDE determinar el tipo de una variable en MySQL. Crear una tabla mediante la selección de la variable y después comprobar el tipo de columna:
set @a:="1"; -- your variable
drop temporary table if exists foo;
create temporary table foo select @a; -- dirty magic
desc foo;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| @a | longtext | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
Esto no parece devolver el tipo de datos correcto. – Pacerier
_No parece? _ ¿Podrías por favor ser más específico? La columna 'Tipo' reflejaría el tipo de variable, ya que está representado por MySQL ** internamente **. No tiene que ser mínimo/óptimo. Por ejemplo, 'longtext' no se convertirá mágicamente en' varchar (1) 'o' tinyint (1) 'como en mi ejemplo anterior. – 5lava
Esto parece estar oculto como se menciona en [otro hilo] (http://dba.stackexchange.com/q/57363/9405) ............... ¿Está seguro de que el tipo devuelto en la tabla temporal es el ** mismo tipo ** que el de la variable? Parece que se hace algún tipo de conversión implícita cuando 'create table foo select @ a' ........ ¿Por qué devuelve' longlong' para enteros simples y 'longblob' para campos de bit simples? – Pacerier
en MySQL, no se puede identificar el tipo de datos de la variable. Pero hay una manera de identificar sólo las cadenas y enteros mediante el uso de cast:
set @a = "11";
SELECT CAST(@a AS SIGNED); // Output : 11
set @a = "text";
SELECT CAST(@a AS SIGNED); // Output : 0
set @a = "121212";
SELECT CAST(@a AS SIGNED); // Output : 121212
set @a = "Mysql is open source";
SELECT CAST(@a AS SIGNED); // Output : 0
- 1. Obtenga el tipo de una variable en VBScript
- 2. Obtenga STDOUT en una variable
- 3. Obtenga una clase "real" de tipo genérico
- 4. C# - Obtenga el tipo de elemento para una lista genérica
- 5. C# Obtenga el tipo de una matriz multidimensional
- 6. Cómo comprobar si el tipo de variable coincide con Tipo almacenado en una variable
- 7. Django: obtenga la salida de HTML en una variable
- 8. MySql: inserte una fila y obtenga el contenido
- 9. Obtenga el total de horas trabajadas en un día mysql
- 10. ¿Cómo obtener el tipo de una variable en MATLAB?
- 11. MySQL - Obtenga el número de fila en seleccionar
- 12. Tipo tienda en el campo/variable de
- 13. ¿Cómo declarar una variable en MySQL?
- 14. ¿Cómo obtener el tipo de datos de una variable uniforme
- 15. Cómo determinar el tipo de datos de una variable
- 16. Declarar una variable usando un tipo de variable
- 17. ¿Cómo determinar el tipo primitivo de una variable primitiva?
- 18. ¿Cómo se verifica el tipo de una variable local?
- 19. CREAR TIPO en MySQL
- 20. iphone: obtenga una variable definida por el usuario en la configuración de Target por código?
- 21. ¿Cómo verificar el tipo de variable? Python
- 22. Obteniendo el tipo de variable en el código C
- 23. ¿Cómo obtengo el tipo de variable?
- 24. Cláusula LIMIT variable en MySQL
- 25. Obtenga una lista de las instancias en una clase de tipo en Haskell
- 26. utilizar una variable de nombre de tabla en MySQL sproc
- 27. ¿Cómo declarar una variable en MySQL para una consulta normal?
- 28. Cómo convertir un tipo de variable Mat en un tipo de variable IplImage en OpenCV 2.0?
- 29. MySQL CREAR USUARIO con una variable?
- 30. MySQL Trigger - Almacenamiento de un SELECT en una variable
que no entiendo su enfoque en esta materia. No creo que puedas obtener un tipo de variable en mysql, pero podría estar equivocado – marcgg
@marcgg, creo que "entiendes" lo que quiere decir. – Pacerier
Dado que las variables deben declararse por adelantado con un tipo específico, ya debe saber que @a es una cadena. Pero obviamente está sucediendo más aquí. ¿Qué estás tratando de lograr con esto? –