如果我定义了一个类似于set @a = "1";
的变量。我怎么看到@a是一个字符串?在MySQL中获取变量的类型
9
A
回答
4
您无法确定MySQL中变量的类型。
作为替代方案,您可以轻松地CAST()
您的变量类型,你的愿望:
@a = CAST(123 AS CHAR);
更多信息和MySQL手册中铸造的例子:
10
您可以确定MySQL中变量的类型。通过选择变量创建表格,然后检查列类型:
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 | |
+-------+----------+------+-----+---------+-------+
0
在MySql中,您无法识别变量的数据类型。但是,有一种方法,通过使用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
这里我就不让你的方法。我不认为你可以在mysql中得到一个变量类型,但我可能是错误的 – marcgg 2009-08-03 16:17:05
@marcgg,我认为你“得到”他的意思。 – Pacerier 2015-04-16 06:35:26
由于变量必须先声明特定类型,您应该已经知道@a是一个字符串。但显然这里还有更多。你想用这个完成什么? – 2009-08-03 16:15:14