2012-07-22 63 views
0

我有一個非常基本的數據庫,我需要返回某些結果。MySQL Select語句在一列上返回不匹配

表我在尋找被稱爲Judge及其包含的列:

Judge_id, Name, Suburb 

在我的select語句,我需要回報大家的誰住在阿德萊德和悉尼的結果。

於是我就用:

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 

回答

1

我同意拉維的建議 - 但如果你真的想使用「LIKE」,然後使用:

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

只有如果有後綴到現場數據,雖然任何用途。

+0

這將返回一個結果爲悉尼,但沒有爲阿德萊德...得到非常困惑 – 2012-07-22 12:14:35

+0

如果您複製/粘貼可能是我的拼寫... – FreudianSlip 2012-07-22 12:15:54

+0

從閱讀您編輯的問題,你可能有一些空間或其他信息在開始/結束您要查找的數據,所以使用'%Adelaide%'或郊區'%Sydney%' – FreudianSlip 2012-07-22 12:17:24

1

試試這個:

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

您還可以男更多郊區以逗號分隔。

+0

該字符串僅爲阿德萊德帶來了一個結果。應該有3場比賽,阿德萊德2場,悉尼​​1場。 – 2012-07-22 12:09:22

+0

請分享您的餐桌資料,它會幫助我們找出問題所在。 – 2012-07-22 12:15:24