2010-06-22 292 views
-6

我正在運行以下查詢,但即使存在與查詢匹配的記錄也不返回任何行。從SQL查詢返回沒有結果

SELECT 
    * 
FROM 
    tblsignup 
WHERE 
    usr_email='[email protected]' 
AND 
    (status=1 or status=2) 
+0

該查詢有效。你有什麼問題? – 2010-06-22 13:29:05

+0

沒有輸出,結果在數據庫中有用 – Aamir 2010-06-22 13:30:59

+4

記錄是否存在與'[email protected]'的usr_email和狀態1或2? – 2010-06-22 13:36:12

回答

2

您應通過簡化查詢嘗試(是的,即使這是如此簡單)

從嘗試這個

選擇* tblsignup

然後

從tblsignup選擇*,其中 usr_email = '[email protected]'

然後

選擇從tblsignup其中 usr_email ='[email protected]」和 狀態> 0

*

//我知道你不會在最後使用> 0,但是我們希望消除錯誤的最大原因,我們通過> 0簡化只是爲了更易於閱讀

告訴我們從哪裏開始獲得0行,這可能會導致我們遇到問題,我知道我已經有一個類似於「date」字段的問題,因爲date已經被MySQL使用,有趣的MySQL仍然讓我使用該字段名。

2

試試這個:

select * from `tblsignup` where `usr_email`='[email protected]' and (`status`=1 or `status`=2) 

我有一種感覺, 「status」 可能會爲一些特別的東西保留。可能值得把它改成「狀態」。

+0

沒有輸出。 – Aamir 2010-06-22 13:34:33

+0

你可以發佈一些額外的代碼,你使用PHP來運行查詢? – Sam152 2010-06-22 13:35:37

2

圍繞status列名稱重包裝括號:

SELECT * 
    FROM tblsignup 
WHERE usr_email = '[email protected]' 
    AND ([status] = 1 
    OR [status] = 2); 

編輯 閱讀您的評論後,爲什麼不使用:

SELECT * 
    FROM tblsignup 
WHERE usr_email = '[email protected]' 
    AND [status] > 0; 
+0

有三種狀態0,1,2。我只想要那些狀態爲1,2的結果 – Aamir 2010-06-22 13:36:05

+0

沒有輸出記錄有效 – Aamir 2010-06-22 13:47:12

+0

@amir Fayyaz:運行SELECT [status] FROM tblsignup WHERE usr_email ='[email protected]'並告訴我們結果是什麼。 – 2010-06-22 13:48:17

0

但願這是你的列或表中有案敏感整理和地址輸入不同('Amir ...')?由於你的查詢是正確的SQL。你可以找到與:

EXEC sp_help DatabaseName