Условные операторы MYSQL, которые должны выполняться без уникального ключа в веб-приложении с Flask и с использованием mysql 5.7 [duplicate]

className - это просто строка, поэтому вы можете использовать регулярную функцию indexOf , чтобы увидеть, содержит ли список классов другую строку.

14
задан DrXCheng 27 June 2012 в 23:09
поделиться

3 ответа

INSERT INTO tb (name, date, stat1, stat2, stat3)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE stat1 = stat1 + VALUES(stat1), stat2 = stat2 + VALUES(stat2), stat3 = stat3 + VALUES(stat3)
28
ответ дан vearutop 4 September 2018 в 07:33
поделиться

Добавить вычисленный столбец (сумма) и включить его в ваш ПК.

Однако это делает денормализацию вашей таблицы. Вы можете использовать суррогатный ключ и выполнять вычисления в SELECT

0
ответ дан Kermit 4 September 2018 в 07:33
поделиться

Если вы укажете ON DUPLICATE KEY UPDATE и вставлена ​​строка, которая приведет к дублированию значения в индексе UNIQUE или PRIMARY KEY, MySQL выполнит ОБНОВЛЕНИЕ старой строки. Например, если столбец a объявлен как UNIQUE и содержит значение 1, следующие два оператора имеют схожий эффект:

INSERT INTO table (a, b, c) VALUES (1,2, 3) ON DUPLICATE KEY UPDATE c = c + 1;

Пример эквивалентного обновления выглядит следующим образом:

Таблица UPDATE SET c = c + 1 WHERE a = 1;

Если столбец a и b уникален, будет использоваться эквивалентный запрос на обновление,

Таблица UPDATE SET c = c + 1 WHERE a = 1 ИЛИ b = 2 LIMIT 1;

-2
ответ дан shivaP 4 September 2018 в 07:33
поделиться
Другие вопросы по тегам:

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