Поле SELECT WHERE! = Значение, как это делается в MySQL? - PullRequest
3 голосов
/ 24 апреля 2009

Я не могу найти ответ, так как поиск mysql НЕ в Google - это кошмар (даже с кавычками).

Мне нужно сделать запрос, подобный этому:

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

Как это сделать? Это вообще возможно?

Ответы [ 4 ]

6 голосов
/ 24 апреля 2009
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);
4 голосов
/ 24 апреля 2009

вы пробовали оператор <>

SELECT * FROM table WHERE field = value AND field2 <> value2
4 голосов
/ 24 апреля 2009

Да, вы можете делать именно то, что написали, но используйте <> вместо !=

Возможно, ответ зависит от того, что такое "ценность"? Например, для целого числа 123 value будет 123; для строки "foobar" value будет 'foobar'.

2 голосов
/ 24 апреля 2009

вы пробовали "<>"? это работает в Delphi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...