MySQLは距離範囲による検索を実現する(クエリー範囲内のデータ)

771 ワード

テーブルの作成
DROP TABLE IF EXISTS `typhoonReal`;
CREATE TABLE `typhoonReal` (
  `datetime` bigint(20) NOT NULL,
  `tsid` int(20) NOT NULL,
  `lon` double(20,1) DEFAULT NULL,
  `lat` double(20,1) DEFAULT NULL,
  `updatetime` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`datetime`,`tsid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

仕事の原因のため、時計はすべて貼ることが不便で、データは自分で任意にいくつか追加して自分でテストすることができます
仕事の必要性のため、私は経緯度を1つの全体としてクエリーのデータを入れなければならなくて、多くの資料をクエリーして、最終的に問題を解決します
クエリ文
select * from typhoonReal where MBRWithin(ST_GeomFromText(CONCAT('POINT(',lon,' ',lat,')')),GeomFromText('POLYGON((0 14, 150 14, 150 0, 0 0, 0 14))'));

注意POLYGON関数のデータは前尾を合わせてください.そうしないと、エラーが発生します.