Когда ответит @Jim Garrison, вы должны указать столбцы для сравнения значения 'foo'.В противном случае вы тестируете само постоянное значение, которое может быть либо ложным (ноль), либо истинным (ненулевым).
SELECT * FROM database.table WHERE NOT 'foo'
не возвращает данных, поскольку 'foo'
не является ложным постоянным значением.Поэтому NOT 'foo'
имеет значение false для каждой строки в таблице, поэтому ни одна строка не совпадает, и результатом является пустой набор.
Джим дает один синтаксис для проверки каждого столбца по очереди.Вот еще один альтернативный синтаксис:
SELECT * FROM database.table WHERE 'foo' NOT IN (column1, column2, column3, ...)
Однако я согласен с комментарием @Mosty Mostacho.В реляционной базе данных странно проверять одно значение по многим столбцам.Каждый столбец должен иметь различный логический тип атрибута, поэтому редко приходится искать похожее значение среди многих столбцов (не невозможно, но редко).
Обычно это означает, что вы используете повторяющиеся группы столбцов, что нарушает Первая нормальная форма .Вместо этого вам может потребоваться создать дочернюю таблицу, чтобы все значения, которые вы ищете, были в одном столбце или в нескольких строках.