您好,我有一张表,其中我在一个字段中存储完整地址,而在其他字段中仅存储城市名称。 表字段(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);
这是否解决了您的问题?
(评论后显然不是,这个怎么样:)
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/