mysql中的较少用到的数据类型的一点说明,real;enum,set;POINT,LINESTRING,POLYGON等

1.

real,就当成double来用。

2.enum、set。

很简单。

但问题是如何查询和使用,在上层的语言里查出来的是什么样子的。

是string。

比如有这么一个表,table(col1 enum,col2 set);其中enum有 (1,'甲')、(2,'乙')、(3,'丙')、(4,'丁'). set有 (1,'A')、(2,'B')、(3,'C')、(4,'D')

如果有这么一列,col1字段为‘甲’,col2字段为‘A’

假如我们用C#语言结合dapper来查询

var result = db.Query<tableModel>("select * from table_name limit 1");

那么,tableModel里的属性该分别用什么类型的字段来接收呢?

实验证明,

public class tableModel{
public int id{get;set;}
public string col1 {get;set;}
public string col2 {get;set;}
}

注意了,这里col1和col2经过测试,试图用int型是不行的(我知道你们都清楚C系语言的枚举类型的那个意思)。

3.

POINT等空间类型。

显然做地图、画图、测距等是最合适的类型了。

但是同样的问题,如果用其他语言查询,该用什么字段来接收呢?

经测试,

POINT、LINESTRING这样的,用 byte[] ,也就是二进制数组才行。用string和int[]这样的都不行

其余空间类型都是基于这两个的,相必也是这样。

得到byte[]之后再转换成相应的内容就行了。