Никогда не используйте слово «шаблон», поскольку оно очень неоднозначно. Всегда используйте «string» или «regexp» (или в шаблоне «globbing» оболочки), в зависимости от того, что вы действительно имеете в виду.
Конкретный ответ, который вы хотите:
awk 'f{print;f=0} /regexp/{f=1}' file
или специализируется на более общем решении N-й записи после regexp (ниже идиомы «c»):
awk 'c&&!--c; /regexp/{c=1}' file
Следующие идиомы описывают, как выбрать диапазон записей, заданных для определенного регулярного выражения:
a) Распечатайте все записи из некоторого regexp:
awk '/regexp/{f=1}f' file
b) Распечатайте все записи после некоторого регулярного выражения:
awk 'f;/regexp/{f=1}' file
c) Распечатайте N-ю запись после некоторого regexp:
awk 'c&&!--c;/regexp/{c=N}' file
d) Распечатайте каждую запись, кроме N-й записи, после некоторого регулярного выражения:
awk 'c&&!--c{next}/regexp/{c=N}1' file
e) Распечатайте N записей после некоторого регулярного выражения:
awk 'c&&c--;/regexp/{c=N}' file
f) Распечатайте каждую запись, кроме N записей, после некоторого регулярного выражения:
awk 'c&&c--{next}/regexp/{c=N}1' file
g) Распечатайте N записей из некоторого регулярного выражения:
awk '/regexp/{c=N}c&&c--' file
Я изменил имя переменной с «f» на «found» на «c» для «count», если это необходимо, так как это более выразительно, что переменная на самом деле IS.
UPDATE table SET credit = credit + 7 WHERE id = 1
Просто попробуйте это ...
UPDATE table SET credit = credit + 7 WHERE id = 1
Просто используйте credit = credit + 7
вместо credit = '+7'
в инструкции UPDATE
UPDATE tablename SET credit = credit + 7 WHERE id = 1
well '+' - оператор, поэтому вам нужно предоставить требуемый параметр. Оператор «+» является двоичным оператором, поэтому нам нужно предоставить ему два параметра с синтаксисом
value1+value2
, хотя он может принимать параметры многих типов данных, записывая «+7», вы отправляете только Строковое значение «+7» заменяет ваше предыдущее значение
, поэтому лучше использовать
UPDATE table SET credit = '+7' WHERE id='1'
не путать оператор «+» с другими операторами инкремента
Попробуйте этот код
UPDATE table SET credit = credit + 7 WHERE id='1'
Это просто UPDATE
. Попробуйте следующее.
UPDATE tableName
SET Credit = Credit + 7
WHERE ID = 1
обратите внимание, что ID = 1
и ID = '1'
совпадают с тем, что сервер автоматически анализирует его.
Я хотел добавить к этому пример с расширением «ON DUPLICATE KEY UPDATE» (основанный на ответе @ hims056). Я нашел этот ответ, но мне нужен «ON DUP ...», поэтому я решил, что он может также опубликовать его здесь.
INSERT INTO table1
(`id`, `credit`)
VALUES (1, 4)
ON DUPLICATE KEY UPDATE
`credit` = `credit` + 7;