2009-04-24 31 views
3

我找不到答案,因爲搜索MySQL不在谷歌是一個噩夢(即使與報價)。SELECT WHERE field!=值如何在mysql中完成?

我需要這樣的查詢:

SELECT * FROM table WHERE field=value AND field2!=value2 AND field3!=value3 

它是如何做?它甚至有可能嗎?

回答

6
SELECT * FROM table WHERE 
     ((field = value) AND 
     (field2 <> value2) AND 
     (field3 <> value3)) 

如果你正在處理NULL,你必須做兩件事情:

  1. 使用SET ANSI_NULLS ON
  2. 聲明NULL值與虛擬值。

SQL無法比較空值。

爲了做到這一點:

SET @value = ISNULL(@value, -1); 
+0

錯字有我想......場3 <>字段3將始終評估爲不匹配不會吧;) – 2009-04-24 13:44:32

4

是的,你可以做的正是你寫的東西,而是用<>代替!=

答案或許取決於什麼「價值」?例如,對於整數123 value將是123;對於字符串「foobar」value將是'foobar'

2

你試過「<>」嗎?它工作在Delphi

4

你試過了<>操作

SELECT * FROM table WHERE field = value AND field2 <> value2 
相關問題