Моя таблица tbl1
выглядит следующим образом (SQLFiddle):Как обновить несколько строк (не всегда строк) с одинаковым значением?
id col1 col2 col3
1 0 1 0
2 1 0 0
3 0 0 1
4 1 1 1
5 0 0 0
Мое требование, что я получаю некоторое положительное число от пользователя для каждого столбца, и мне нужно обновить строки определенного столбца, если они содержат ноль , и, наконец, я должен подсчитать количество обновленных строк и разницу между пользователем и обновленным счетчиком, который я должен добавить в последнюю строку.
Позвольте мне объяснить, например:
Say пользователь вводит 10 для col1. col1 имеет 3 строки, содержащие ноль, поэтому я буду обновлять их до 1, и, наконец, diff i.e. (10 - 3 = 7), я должен обновить в последней строке.
После обновления я ожидаю таблицы выглядеть следующим образом:
id col1 col2 col3
1 1 1 0
2 1 0 0
3 1 0 1
4 1 1 1
5 8 0 0
update tbl1 set col1=1 where id in (select id from tbl1 where col1=0 limit 10)
Этот запрос обновляет все 0s 1, но как я могу добавить оставшееся до последней строки?
Почему у вас есть «Sql-Server» в качестве тега, если вы хотите SqlLite? – pmbAustin
Если кто-то помогает с SQLite, это было бы здорово, но я в порядке, если некоторые люди также дают мне запрос SQL Server, я получаю идею с этим, а затем я попытаюсь написать его сам – abdulH