[英]SELECT * FROM city WHERE city LIKE '%value% %value%';
我有一个包含许多城市的数据库,以及两个名称相似的城市。
霍尔斯坦和奥尔登堡(奥尔登堡)的奥尔登堡
我从URL得到一个城市
范例网址:
www.example.com/cityname/oldenburg-in-holstein
www.example.com/cityname/oldenburg-oldenburg
SELECT city FROM citynames WHERE city LIKE '%oldenburg%';
我发表这个声明我在荷尔斯泰因州得到奥尔登堡
SELECT * FROM citynames WHERE city LIKE '%oldenburg%' AND LIKE '%oldenburg%'';
我再次在荷尔斯泰因州得到奥尔登堡,但如果我发表这份声明
SELECT city FROM citynames WHERE city LIKE '%oldenburg% %oldenburg%';
声明工作! 我得到奥尔登堡(Oldenburg)我的问题是我可以使用这个陈述吗?
用
SELECT * FROM citynames WHERE city LIKE '%oldenburg%' AND LIKE '%oldenburg%'';
您在问同样的事情两次:城市是否包含字符串“ oldenburg”。 这不是您想要的。
用
SELECT city FROM citynames WHERE city LIKE '%oldenburg% %oldenburg%';
您正在寻找一个包含“奥尔登堡”的城市,然后在某个位置之后将其空白,然后在此之后再次使用“ oldenburg”一词。 是的,这就是您想要的。 您会找到“奥尔登堡(Oldenburg)”,但找不到“霍尔斯坦的奥尔登堡”。
当您从URL中获取城市名称时,城市名称的各个部分之间用-
分隔,即为:
SELECT city FROM citynames WHERE city LIKE CONCAT('%', REPLACE(url, '-', '%'), '%');
顺便说一句:显然,您使用的排序规则不区分大小写。 否则,您必须使用LIKE '%Oldenburg% %Oldenburg%'
才能找到'Oldenburg(Oldenburg)'或WHERE LOWER(city) LIKE ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.