繁体   English   中英

SELECT * FROM city WHERE city like'%value%%value%';

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM