0

我有一个非常基本的数据库,我需要为其返回某些结果。

我正在搜索的表被调用Judge,它包含以下列:

Judge_id, Name, Suburb

在我的选择声明中,我需要返回居住在阿德莱德和悉尼的每个人的结果。

所以我使用:

SELECT *
FROM judge
WHERE Suburb LIKE ('Adelaide' 'Sydney');

但这不会返回任何结果。也试过:

SELECT *
FROM judge
WHERE Suburb = 'Adelaide' 'Sydney'

仍然没有结果。

但是,如果我只搜索阿德莱德:

SELECT *
FROM judge
WHERE Suburb = 'Adelaide'

我得到一个结果。但是有多个匹配项,并且在表的最后一个中返回的结果(如果这与它有任何关系)。

如果我做:

SELECT *
FROM judge
WHERE Suburb LIKE '%Adelaide%'

我得到了两场比赛。但是,如果我将 % 符号排除在外,我只会再次获得一场比赛。

如果我搜索表中人员的任何“姓名”,我可以为他们中的任何一个找到匹配项。那么为什么我很难找到 Suburb 的匹配项呢?谢谢你的帮助

编辑:

表看起来像:

CREATE TABLE JUDGE (
   Judge_id    INT     NOT NULL,
   Name        VARCHAR(25),
   Address     VARCHAR(25),
   PRIMARY KEY (Judge_id)
);

和数据:

1  Smith      Melbourne
2  Green      Cootamundra
3  Gates      Dunkeld
4  Smith      Sydney
5  Russell    Adlaide
6  Schofield  Adelaide
4

2 回答 2

1

尝试这个 :

SELECT * FROM judge WHERE Suburb in ('Adelaide' , 'Sydney');

您还可以提及更多用逗号分隔的郊区。

于 2012-07-22T12:05:11.867 回答
1

我同意 Ravi 的建议 - 但如果您真的想使用“LIKE”,请使用:

SELECT * FROM judge WHERE Suburb LIKE 'Adelade%' or Suburb LIKE 'Sydney%';

仅当该字段数据有后缀时才有用。

于 2012-07-22T12:07:52.597 回答