您好我有一张桌子,我在一个字段中存储完整地址,在其他字段中只有城市名称。 表字段(id,address,city,hotel_name)
如果用户也基于街道进行搜索,但是如果该街道有结果,则应首先出现,然后应显示城市的提醒结果,例如用户搜索Russel Street New York然后网站显示结果"拉塞尔街首先"然后显示纽约或该街道附近的结果。
我目前在google places api中传递完整地址并且他们返回我的城市名称所以我在城市字段中过滤该城市记录,但是如果搜索字符串具有城市名称,某些情况google api不会返回任何城市名称。所以有任何其他方法可以做到这一点。
答案 0 :(得分: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, '%');
如果没有,请在您的问题中发布一些示例数据和问题示例。
此致
詹姆斯