php - 当用户输入完整地址并且我将城市存储在我的数据库中时如何仅检查城市名称

标签 php mysql google-maps-api-3

您好,我有一张表,其中我在一个字段中存储完整地址,而在其他字段中仅存储城市名称。 表字段(id、地址、城市、酒店名称)

如果用户也基于街道进行搜索,但如果有该街道的结果,它应该首先出现,然后应该显示城市的重新挖掘结果,例如用户搜索 Russel Street New York 然后网站显示结果“罗素街优先”,然后显示纽约或该街道附近的结果。

我目前已经在 google places api 中传递了完整地址,他们返回了我的城市名称,因此我在城市字段中过滤了该城市记录,但在某些情况下,如果搜索字符串具有城市名称,google api 不会返回任何城市名称。所以有任何其他方法可以做到这一点。

最佳答案

如果需要这种行为,我通常会在 ORDER BY 中放置一个 IF:

 SELECT street, city FROM (
    SELECT 'street 1' street, 'city 1' city
        UNION ALL
    SELECT 'street 2' street, 'city 2' city
        UNION ALL
    SELECT NULL street, 'city 1' city
        UNION ALL
    SELECT NULL street, 'city 2' city
) AS A
ORDER BY city, IF(street IS NULL, 1, 0);

enter image description here

这是否解决了您的问题?

(评论后显然不是,这个怎么样:)

CREATE TEMPORARY TABLE cityTable SELECT 'city1' cityCol UNION ALL SELECT 'city2' UNION ALL SELECT 'city3';

SET @Search = 'street1 city1';

SELECT @Search, cityCol FROM cityTable WHERE @Search LIKE CONCAT('%', cityCol, '%');

如果没有,请张贴一些样本数据和问题示例。

问候,

詹姆斯

关于php - 当用户输入完整地址并且我将城市存储在我的数据库中时如何仅检查城市名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35358668/

相关文章:

php - 替换mysql查询中的字符不起作用

php - 我想在php的一页中列出,编辑和更新记录

php - 1and1 Cron 没有运行 mysql 查询

mysql - 仅获取最后连续一年的行

javascript - 谷歌地图 api 点标记

javascript - Summernote 图像上传在 codeigniter 中不起作用

MySQL存储持续时间 - 数据类型?

mysql group by 平均计算

ios - 在 ios 8.0 中集成 map

google-maps - 在 Google map 上搜索景点、热点、海滩