我不明白这一点。我已经多次删除表并重新创建它,每次都是一样的。当我运行此查询时:
SELECT * FROM `squares` WHERE MBRContains(PolyFromText('Polygon((-34 166, -34 171, -41 171, -41 166, -34 166))'), `coordinate`);
我返回了超过 250,000 个结果,这是正确的。当我尝试根据我的 where 子句更改查询以删除它时,如下所示:
DELETE FROM `squares` WHERE MBRContains(PolyFromText('Polygon((-34 166, -34 171, -41 171, -41 166, -34 166))'), `coordinate`);
MySQL 认为一次只删除一行是合适的。我不会点击 'Go' 250K+ 次。为什么是这样?这是表结构...
`squares` (
`square_id` int(7) unsigned NOT NULL,
`ref_coord_lat` double(8,6) NOT NULL,
`ref_coord_long` double(9,6) NOT NULL,
`coordinate` point NOT NULL,
PRIMARY KEY (`square_id`),
KEY `ref_coord_lat` (`ref_coord_lat`),
KEY `ref_coord_long` (`ref_coord_long`),
SPATIAL `coordinate` (`coordinate`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
如果有任何用处,这是 MySQL 5.5.27,在 phpMyAdmin 3.5.2.2 上运行。有任何想法吗?