【问题标题】:how to check only city name when user enter full address and i stored city in my database当用户输入完整地址并将城市存储在数据库中时如何仅检查城市名称
【发布时间】:2016-05-23 08:53:35
【问题描述】:

您好,我有一张表,我在其中一个字段中存储完整地址,在另一个字段中仅存储城市名称。 表字段(id、address、city、hotel_name)

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

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

【问题讨论】:

    标签: php mysql google-maps-api-3


    【解决方案1】:

    如果需要这种行为,我通常会在 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);
    

    这能解决您的问题吗?

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

    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, '%');
    

    如果不是,请在您的问题中发布一些示例数据和问题示例。

    问候,

    詹姆斯

    【讨论】:

    • 谢谢亲爱的,但是用户在搜索时输入完整地址,就像我在上面指定的那样,所以我如何从中识别城市并将其与城市字段进行比较。由于谷歌 api 不会每次都使用不同的搜索字符串组合给我城市名称。
    • 谢谢,我尝试了您提供的解决方案,它对我有用。
    • 太好了,很高兴能帮上忙
    猜你喜欢
    • 1970-01-01
    • 2010-11-25
    • 2010-11-25
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2012-08-05
    • 2019-11-01
    • 2017-10-03
    相关资源
    最近更新 更多