Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Индексация значений в столбце по порядку / 6 сообщений из 6, страница 1 из 1
05.03.2018, 17:34
    #39610804
Egor15
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексация значений в столбце по порядку
Таблица `s_variants`
Столбец sku

Добрый день! мне в столбце нужно сделать изменения.
вначале думаю очистить,
Код: sql
1.
UPDATE s_variants SET sku = '';


Далее, нужно чтобы значение во всех ячейках писалось больше на единицу.
То есть нужна индексация значений по порядку:
1 ячейка, значение: 1
2 ячейка, значение: 2
3 ячейка, значение: 3
....................
2976 ячейка, значение: 2976
...
Рейтинг: 0 / 0
05.03.2018, 19:27
    #39610873
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексация значений в столбце по порядку
См FAQ по использованию переменых.
...
Рейтинг: 0 / 0
06.03.2018, 10:47
    #39611056
Egor15
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексация значений в столбце по порядку
Так верно?

Код: sql
1.
2.
SET @n = 0;
UPDATE `s_variants` SET `sku` = (@n:= @n + 1);
...
Рейтинг: 0 / 0
06.03.2018, 11:59
    #39611100
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексация значений в столбце по порядку
Верно... но требует, чтобы коннектор поддерживал мультизапросы. Лучше убрать инициализацию в источник данных:

Код: sql
1.
2.
3.
UPDATE `s_variants`
     , (SELECT @n := 0) init
SET `s_variants`.`sku` = (@n := @n + 1);
...
Рейтинг: 0 / 0
06.03.2018, 12:41
    #39611137
Egor15
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексация значений в столбце по порядку
Спасибо!!!
Мне нужно чтобы следующий номер при создании товара сразу увеличивался на 1.
Нужно у столбца сделать, я так понимаю, AUTO_INCREMENT и что писать в файл php, там где значение будет больше на 1?

Сейчас эта ячейка выглядит так в виде html
Код: html
1.
2.
3.
<li class="variant_sku">       
<input name="variants[sku][1001]" type="text" value="902" />
</li>
...
Рейтинг: 0 / 0
06.03.2018, 12:49
    #39611142
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексация значений в столбце по порядку
Egor15Мне нужно чтобы следующий номер при создании товара сразу увеличивался на 1.
Нужно у столбца сделать, я так понимаю, AUTO_INCREMENTНЕТ!!!
Автоинкремент существует исключительно для генерации синтетических ключей. Он не гарантирует непрерывности последовательности, только монотонное возрастание.
Гарантировать непрерывное возрастание можно только "ручным" присвоением. Либо блокированием таблицы на время получения максимума, формирования и записи следующего значения, либо наложением уникального индекса и контролем ошибки дублирования с повторением в случае таковой.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Индексация значений в столбце по порядку / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]