Sql 选择一列中的字符串是另一列中字符串的扩展的行

Sql 选择一列中的字符串是另一列中字符串的扩展的行,sql,Sql,问题:找到首都和名称,其中首都是国家名称的延伸。 请注意,首府必须长于名称(墨西哥城与卢森堡相比) 这是我的作品,但不正确 SELECT name , capital FROM world WHERE capital LIKE concat(name, '%') 你可以这样做: LEN()函数返回文本字段中值的长度 SELECT name , capital FROM world WHERE capital LIKE concat(name, '%') AND LEN(Capital) >

问题:找到首都和名称,其中首都是国家名称的延伸。 请注意,首府必须长于名称(墨西哥城与卢森堡相比) 这是我的作品,但不正确

SELECT name , capital
FROM world
WHERE capital LIKE concat(name, '%')

你可以这样做:

LEN()
函数返回文本字段中值的长度

SELECT name , capital
FROM world
WHERE capital LIKE concat(name, '%')
AND LEN(Capital) > LEN(name)

要获得扩展名,您可以使用REPLACE函数,在下面的查询中将country的“name”从“capital”替换为null

SELECT name , REPLACE(capital,name,'')
FROM world
WHERE capital LIKE concat(name, '_%');

试试这个。这对我有用

SELECT name, capital
FROM world
WHERE capital LIKE concat(name, '%') AND capital <> name;
选择名称、大写字母
来自世界
其中资本,如concat(名称,“%”)和资本名称;
这是编写代码的最具包容性的方式。它可以写得更简洁一些

SELECT capital, name
FROM world
WHERE capital LIKE concat(name, '%')
大写名称的情况是国家总是排在第一位,例如墨西哥城而不是墨西哥城——至少在英语中是这样

SELECT capital, name
FROM world
WHERE capital LIKE concat(name, '%') or capital LIKE concat(name, ' %')

正确^ ^ ^

您只需添加-
和LEN(大写)>LEN(姓名)
,或者
大写名
您可以通过简单的英语解释代码的作用来提高答案的质量。谢谢您的建议。:)虽然此代码可以回答问题,但最好解释如何解决问题,并提供代码作为示例或参考。只有代码的答案可能会混淆和缺乏上下文。这将无法找到示例“墨西哥城”,也无法找到其他不以“城市”结尾的案例(因为“城市”不是一个要求,只是名称更长)
SELECT name, capital  
FROM world   
WHERE capital LIKE concat('%', name, '%')  
AND LENGTH(capital) > LENGTH(name)
SELECT name, capital  
FROM world   
WHERE capital LIKE concat('%', name, '%')  
AND LENGTH(capital) > LENGTH(name)
select name,capital
from world
where capital like concat(name,'%') and capital <> name;
name    capital
Andorra Andorra la Vella
Guatemala   Guatemala City
Kuwait  Kuwait City
Mexico  Mexico City
Monaco  Monaco-Ville
Panama  Panama City
SELECT capital, name
FROM world
WHERE capital LIKE CONCAT(name, '%') 
AND name != capital
SELECT name 
FROM world
WHERE capital LIKE concat(name, ' city')