模糊DISTINCT值

use*_*853 8 php mysql loops distinct strstr

我有一个房地产列表数据库,需要返回一个社区列表.现在我正在使用mysql DISTINCT,它返回所有不同的值.我的疑问是,有很多社区有相似的名字:例如:

Park View Sub 1
Park View
Park View Sub 2
Park View Sub 3
Great Lake Sub 1
Great Lake Sub 2
Great Lake 
Great Lake Sub 3
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个简单的php或mysql解决方案,它会认识到"Park View"和"Great Lake"已经存在并且只返回"Park View"和"Great Lake".

我最初的想法是一些如何按长度获得排序顺序,以便短值在顶部,然后循环使用strstr.这听起来像一个大任务,我想知道是否有一个功能,无论是在mysql还是php,都可以很容易地做到这一点.

Tra*_*ty3 0

如果您总是有一个没有“Sub #”部分的条目,您可以执行以下操作:

SELECT DISTINCT neighborhood FROM table WHERE neighborhood NOT LIKE '% Sub %';
Run Code Online (Sandbox Code Playgroud)

按字符串长度排序:

SELECT DISTINCT neighborhood FROM table ORDER BY LENGTH(neighborhood);
Run Code Online (Sandbox Code Playgroud)

  • 排除 Sub 的唯一问题是,如果“Park View Sub 1”是唯一的社区,我希望它返回那个社区。我希望他们排除的唯一一次是如果已经有一个包含它的社区。 (3认同)