問題:找到資本和名稱,其中大寫字母是國家名稱的擴展名。 注意的是,資本必須大於名稱(墨西哥城市相比,盧森堡) 這是我的工作更長的時間,但它是不正確選擇其中一列中的字符串是另一列中字符串的擴展名的行
SELECT name , capital
FROM world
WHERE capital LIKE concat(name, '%')
問題:找到資本和名稱,其中大寫字母是國家名稱的擴展名。 注意的是,資本必須大於名稱(墨西哥城市相比,盧森堡) 這是我的工作更長的時間,但它是不正確選擇其中一列中的字符串是另一列中字符串的擴展名的行
SELECT name , capital
FROM world
WHERE capital LIKE concat(name, '%')
爲了得到擴展,您可以使用REPLACE功能,在下面的查詢從「資本」替代國「名稱」爲空。
SELECT name , REPLACE(capital,name,'')
FROM world
WHERE capital LIKE concat(name, '_%');
你可以用簡單的英語解釋代碼正在做什麼來提高這個答案的質量。 –
感謝您的建議。 :) –
你可以做這樣的事情:
的LEN()
函數返回文本字段中值的長度。
SELECT name , capital
FROM world
WHERE capital LIKE concat(name, '%')
AND LEN(Capital) > LEN(name)
試試這個。這對我有用。
SELECT name, capital
FROM world
WHERE capital LIKE concat(name, '%') AND capital <> name;
SELECT capital, name
FROM world
WHERE capital LIKE concat('%',name, '%')
這是寫代碼的最具包容性的方式。它可以寫得更簡潔
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, ' %')
正確的^ _^
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
只需要添加 - 'AND LEN(首都)> LEN(名稱)'或'資本<> name' – GarethD