MySQL Select语句在一列上没有返回匹配项

时间:2012-07-22 12:01:59

标签: mysql select

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

我正在搜索的表名为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%'

我得到了两场比赛。但如果我退出%标志,我只会再次获得一场比赛。

如果我搜索表中人物的任何“姓名”,我可以为他们中的任何一个获得匹配。那么为什么我在找到郊区的比赛时遇到了麻烦呢? 谢谢你的帮助

编辑:

表格如下:

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

2 个答案:

答案 0 :(得分:1)

试试这个:

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

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

答案 1 :(得分:1)

我同意Ravi的建议 - 但是如果你真的想使用“LIKE”那么请使用:

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

只有在该字段数据有后缀的情况下才有用。