2013-03-20 43 views
-2
SELECT ques_id,ans_desc 
FROM answer 
ORDER BY ans_desc 
HAVING ans_desc=0 
+1

請注意,null和0不是一回事。 0是介於1和-1之間的確定值。 'null'表示該列的值爲** undefined ** – Johan 2013-03-20 07:48:58

回答

2

使用ans_desc IS NULL謂詞WHERE子句中的「ans_desc」一欄得到NULL值:

SELECT ques_id, ans_desc 
FROM answer 
WHERE ans_desc = 0 OR ans_desc IS NULL 
ORDER BY ans_desc ; 

這將只有那些給你ans_desc列中的0NULL值。

WHERE ans_desc = 0將不會給出NULL值。

+1

+1精細描述感謝 – 2013-03-20 07:50:06

+0

但是這也是從「ans_desc」列返回NULL值的所有值。 – 2013-03-20 08:00:01

+0

@ user2189793然後不要選擇它'SELECT ques_id FROM answer WHERE ans_desc = 0 OR ans_desc IS NULL ORDER BY ans_desc;' – 2013-03-20 08:01:37

0

0NULL並且不同於空

SELECT ques_id,ans_desc 
FROM answer 
WHERE ISNULL(ans_desc) OR ans_desc = '' 
ORDER BY ans_desc 
+0

#1064 - 在你的SQL語法中;檢查與您的MySQL服務器版本相對應的手冊,以便在第4行附近使用正確的語法'HAVING ans_desc IS NULL OR ans_desc =''LIMIT 0,30'in line 4 – 2013-03-20 08:04:09

+0

我編輯了帖子,告訴我它現在是否可用 – Acuao 2013-03-20 10:28:07

0

我不認爲你甚至需要「通過ans_desc秩序」,當你需要選擇只與NULL值的行。

你應該這樣做:

SELECT ques_id as `question`, ans_desc as `answer` 
FROM answer 
WHERE ans_desc is NULL; 

此查詢的優點是,它不使用文件排序。

請參閱您正在使用瞭解更多的查詢的解釋輸出。

希望有所幫助。

+0

響應到這個查詢是 - MySQL返回一個空的結果集(即零行) – 2013-03-20 08:12:54

+0

你想從這張表中選擇什麼?這個問題不是很清楚。我在這裏回答的可能是一個方向。您需要替換where子句中的ans_desc的要求。例如,如果你想選擇沒有/空答案的question_id,你想執行: '(SELECT ques_id as \'question \',ans_desc as \'answer \' FROM answer WHERE ans_desc爲NULL或ans_desc =「」;)' – ninja 2013-03-22 19:01:50