欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 經(jīng)緯度用什么存儲(chǔ)

在開發(fā)中,有時(shí)需要存儲(chǔ)地理位置信息,如經(jīng)緯度。而MySQL是一款常用的關(guān)系型數(shù)據(jù)庫(kù),那么如何在MySQL中存儲(chǔ)經(jīng)緯度信息呢?

通常有兩種方法:使用Decimal類型和使用Point類型。

-- Decimal類型示例
CREATE TABLE `location`(
`id` INT AUTO_INCREMENT PRIMARY KEY,
`longitude` DECIMAL(10, 8) NOT NULL COMMENT '經(jīng)度',
`latitude` DECIMAL(10, 8) NOT NULL COMMENT '緯度'
);
-- Point類型示例
CREATE TABLE `location`(
`id` INT AUTO_INCREMENT PRIMARY KEY,
`position` POINT NOT NULL COMMENT '經(jīng)緯度'
);

使用Decimal類型存儲(chǔ)經(jīng)緯度時(shí),需要指定精度,表示小數(shù)點(diǎn)后的位數(shù)。例如DECIMAL(10, 8)表示總共10位,小數(shù)點(diǎn)后8位。使用Point類型存儲(chǔ)經(jīng)緯度時(shí),只需要一個(gè)字段,使用ST_GeomFromText()函數(shù)將經(jīng)緯度轉(zhuǎn)化為Point類型即可。

-- 插入數(shù)據(jù)
INSERT INTO location(longitude, latitude) VALUES(116.397128, 39.916527);
INSERT INTO location(position) VALUES(ST_GeomFromText('POINT(116.397128 39.916527)'));

使用Point類型存儲(chǔ)經(jīng)緯度可以使用MySQL的空間索引,實(shí)現(xiàn)簡(jiǎn)單的空間查詢。例如查詢距離指定經(jīng)緯度不超過1000米的所有位置:

SELECT id, ST_X(position), ST_Y(position), ST_Distance_Sphere(position, POINT(116.397128, 39.916527))
FROM location
WHERE ST_Distance_Sphere(position, POINT(116.397128, 39.916527))<= 1000;

總之,使用Decimal類型或Point類型都可以存儲(chǔ)地理位置信息。Decimal類型相對(duì)簡(jiǎn)單,但無法使用空間索引;Point類型功能更強(qiáng)大,可以使用MySQL的空間索引實(shí)現(xiàn)空間查詢。