SELECT * FROM table WHERE field1 NOT LIKE '%$x%';
(Удостоверяются, что Вы выходите из $x правильно заранее для предотвращения Внедрения SQL)
Редактирование: NOT IN
делает что-то немного различное - Ваш вопрос не полностью ясен так выбор который использовать. LIKE 'xxx%'
может использовать индекс. LIKE '%xxx'
или LIKE '%xxx%'
не может.
Другие предлагаемые до сих пор решения страдают от одной или нескольких из следующих проблем:
/ canis / lupus / lupus /
или / nicknames / Robert / Rob /
Эта версия решает все проблемы, перечисленные выше.
cd ()
{
local pwd="${PWD}/"; # we need a slash at the end so we can check for it, too
if [[ "$1" == "-e" ]]
then
shift
# start from the end
[[ "$2" ]] && builtin cd "${pwd%/$1/*}/${2:-$1}/${pwd##*/$1/}" || builtin cd "$@"
else
# start from the beginning
[[ "$2" ]] && builtin cd "${pwd/\/$1\///$2/}" || builtin cd "$@"
fi
}
Выдача любой из других версий, которую я назову cdX
, из такого каталога, как этот:
/canis/lupus/lupus/specimen $ cdX lupus familiaris bash: cd: /canis/familiaris/lupus/specimen: No such file or directory
не удается, если вторая пример «волчанки» - это тот, который предназначен. Чтобы учесть это, вы можете использовать опцию « -e
», чтобы начать с конца структуры каталогов.
/canis/lupus/lupus/specimen $ cd -e lupus familiaris /canis/lupus/familiaris/specimen $
Или выдача одного из них из этого:
/nicknames/Robert/Rob $ cdX Rob Bob bash: cd: /nicknames/Bobert/Rob: No such file or directory
непреднамеренно заменит часть строки. Моя функция обрабатывает это, включая косые черты в совпадение.
/nicknames/Robert/Rob $ cd Rob Bob /nicknames/Robert/Bob $
Вы также можете указать каталог однозначно следующим образом:
/fish/fish/fins $ cd fish/fins robot/fins /fish/robot/fins $
Кстати, я использовал управляющие операторы &&
и ||
в моей функции вместо if
... then
... else
... fi
только ради разнообразие.
Подстановочное выражение Михала Горни прекрасно работает. Чтобы переопределить встроенную команду cd, сделайте следующее:
cd () {
if [ "x$2" != x ]; then
builtin cd ${PWD/$1/$2}
else
builtin cd "$@"
fi
}