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等空间类型。

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

参考此文即可。

http://blog.csdn.net/devcopper/article/details/38088001


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

经测试,

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

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

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



猜你喜欢

转载自blog.csdn.net/festone000/article/details/78589660