寻找首都有国家名称的国家

时间:2015-08-03 14:46:14

标签: sql

如何找到资本名称包含国家/地区名称的国家/地区。

例如:

Country   Capital
--------------------
A         Acity
B         B
C         xxx
D         capital of D

答案将返回A,BD

我试过这个,但只返回国家B

SELECT name, capital
  FROM world
 WHERE name LIKE capital

这个问题是第13个问题 Sqlzoo

11 个答案:

答案 0 :(得分:3)

您需要使用它正确的连接语法。

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

注意以下查询对大多数DBMS是正确的

SELECT name, capital
FROM world
WHERE name LIKE '%' + capital + '%'

但是在Sqlzoo

发生错误
  

您的SQL语法有错误;检查手册   对应于您的MariaDB服务器版本,以获得正确的语法   在第3行'+ capital +'%'附近

答案 1 :(得分:2)

SELECT name, capital
FROM world
WHERE name LIKE '%' + capital + '%'

答案 2 :(得分:2)

size_t countPunct( const char *s )
{
    static const std::string searchPunct = ".,-;:'\"()?!";
    size_t count = 0;
    for ( int i = 0; i < strlen( s ); i++ )
    {
        if ( searchPunct.find( s[i] ) != string::npos )
            count ++;
    }
    return count;
}

这是正确的答案。我检查过了

答案 3 :(得分:0)

尝试使用外卡比较:

SELECT name, capital
  FROM world
 WHERE name LIKE '%' + capital + '%'

答案 4 :(得分:0)

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

答案 5 :(得分:0)

SELECT name
 FROM world
 WHERE name = capital

等号在某些情况下既用作赋值运算符,又用作比较运算符。 =赋值运算符不能在所有上下文中使用,并且仅在SET语句或SET语句的UPDATE子句中有效。

答案 6 :(得分:0)

https://sqlzoo.net/wiki/SELECT_names上,正确答案是:

SELECT name
FROM world 
WHERE name LIKE capital;

答案 7 :(得分:0)

SELECT name FROM world WHERE capital LIKE name;

答案 8 :(得分:0)

我现在也在做这个问题,SQL Zoo系统仅接受以下答案。

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

答案 9 :(得分:0)

SELECT capital, name
  FROM world
 WHERE capital LIKE (concat('%', name, '%'))
  • like:搜索模式
  • concat:创建你的模式 需要

答案 10 :(得分:-1)

SELECT name
  FROM world
 WHERE name LIKE Capital