Усеченное неправильное значение DOUBLE: [duplicate]

Никогда не используйте слово «шаблон», поскольку оно очень неоднозначно. Всегда используйте «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.

19
задан John Woo 13 November 2012 в 18:19
поделиться

7 ответов

UPDATE table SET credit = credit + 7 WHERE id = 1
47
ответ дан MatthewMcGovern 20 August 2018 в 19:43
поделиться

Просто попробуйте это ...

UPDATE table SET credit = credit + 7 WHERE id = 1
3
ответ дан Gopesh Sharma 20 August 2018 в 19:43
поделиться

Просто используйте credit = credit + 7 вместо credit = '+7' в инструкции UPDATE

UPDATE tablename SET credit = credit + 7 WHERE id = 1

См. этот SQLFiddle

10
ответ дан hims056 20 August 2018 в 19:43
поделиться

well '+' - оператор, поэтому вам нужно предоставить требуемый параметр. Оператор «+» является двоичным оператором, поэтому нам нужно предоставить ему два параметра с синтаксисом

 value1+value2

, хотя он может принимать параметры многих типов данных, записывая «+7», вы отправляете только Строковое значение «+7» заменяет ваше предыдущее значение

, поэтому лучше использовать

UPDATE table SET credit = '+7' WHERE id='1'

не путать оператор «+» с другими операторами инкремента

1
ответ дан Hussain Akhtar Wahid 'Ghouri' 20 August 2018 в 19:43
поделиться

Попробуйте этот код

UPDATE table SET credit = credit + 7 WHERE id='1' 
7
ответ дан iLaYa ツ 20 August 2018 в 19:43
поделиться

Это просто UPDATE. Попробуйте следующее.

UPDATE tableName
SET Credit = Credit + 7
WHERE ID = 1

обратите внимание, что ID = 1 и ID = '1' совпадают с тем, что сервер автоматически анализирует его.

16
ответ дан John Woo 20 August 2018 в 19:43
поделиться

Я хотел добавить к этому пример с расширением «ON DUPLICATE KEY UPDATE» (основанный на ответе @ hims056). Я нашел этот ответ, но мне нужен «ON DUP ...», поэтому я решил, что он может также опубликовать его здесь.

INSERT INTO table1 
(`id`, `credit`)
VALUES (1, 4)
ON DUPLICATE KEY UPDATE
`credit` = `credit` + 7;

См. Здесь SQL Fiddle здесь

1
ответ дан KisnardOnline 20 August 2018 в 19:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: