У меня есть таблица в БД. С полями id
, pos
. А также есть массив с идентификаторами:
Array (
[0] => 1858
[1] => 1863
[2] => 1725
[3] => 1595
[4] => 1834
[5] => 1835
[6] => 1859
// ... и т.д.
)
Я хочу сделать update
в таблице таким образом, чтобы в колонке pos
было значение, равное индексу в массиве + 1, то есть для 1858 pos
был равен 1, для 1863 - 2, для 1725 - 3 и т.д.
Это можно как-то в один запрос сделать ёмко? Или тут только два пути: 1) в цикле делать update
с where
2) в запросе городить гигантский switch/case
?
Можно воспользоваться функцией FIELD:
update table
set pos=field(id,'1858','1863',...)
UPD Или, по предложению @Akina:
update table
set pos=find_in_set(id,'1858,1863,...')
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеУ меня имеется такой php код, который заливает данные из csv файла в базу MySQL
Как правильно произвести арифметическое действие на ячейку с условием id_nds=1