MySQL 查询 - 检索仅包含字母和空格的行


MySQL query - retrieve rows that only contain letters and spaces

我想构造一个查询,该查询从 GeoCache 表中返回位置列表,以便计算搜索次数最多的位置。 地理缓存表中充满了来自用户的位置搜索。

我想打折邮政编码和长格式地址,所以我真的只想要字母和空格的搜索,即"曼彻斯特"而不是"1 This Street, Place, Manchester"

我在单独的表格中列出了可以匹配的城镇列表,但两者没有直接联系。

如何最好地检索符合我要求的热门位置列表(我的表有一个geocache_count列)?

我的表基本上看起来像这样:

geocache_id
geocache_place /* this is where the search ends up */
geocache_lat
geocache_lng
geocache_count

你可以为此使用正则表达式,但这会慢一点。

WHERE `geocache_place` RLIKE '^[[:alnum:]]+$';

通过在表达式上添加 ORDER BY 子句来确定顶部,可以找到顶部位置。