天天看點

mysql point類型的簡單使用

什麼是point類型資料?舉個例子如下:

POINT(123.462202 41.804471)

首先建立一個表:

DROP TABLE IF EXISTS `tb_point`;
CREATE TABLE `tb_point` (
  `timestamp` date NOT NULL COMMENT '時間戳',
  `point` point NOT NULL COMMENT '經緯度',
  `type` char(20) character set utf8 default '' COMMENT '點類型',
  `name` varchar(50) character set utf8 NOT NULL COMMENT '點名稱',
  `introduce` text character set utf8 COMMENT '介紹,包含文字、視訊、目錄,json格式',
  `attention` int(5) NOT NULL default '0' COMMENT '關注人數',
  `score` tinyint(2) NOT NULL default '0' COMMENT '評分,用于協同過濾推薦',
  `status` tinyint(2) NOT NULL default '2' COMMENT '狀态,用于管理者添加',
  `uri` varchar(255) character set utf8 default NULL COMMENT '維基uri',
  PRIMARY KEY  (`timestamp`,`point`(25)),
  KEY `index_timestamp` USING BTREE (`timestamp`),
  KEY `index_name` USING HASH (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
           

要想使用point類型,在建表時,需要這樣設定:ENGINE=MyISAM

建完表以後插入部分資料。插入資料後的部分截圖如下(其中紅框裡就是point類型資料):

mysql point類型的簡單使用

image

insert示例:

INSERT INTO `tb_point` VALUES ('1900-01-01', GeomFromText('POINT(123.462202 41.804471)'), '景點', '沈陽故宮', 
'{\"text\":\"1900年左右的沈陽故宮文字介紹\",\"picture\":\"\",\"video\":\"\"}', '1000', '0', '1', null);
           

select示例:

SELECT timestamp,AsText(point),type,name,introduce,attention,score,uri FROM 
tb_point order by AsText(point),`timestamp` DESC ;
           

select的結果如下圖所示:

mysql point類型的簡單使用