Заполнение пустых строк в столбце порядковыми числами

JustAnotherUser
Дата: 16.01.2013 11:37:10
Здравствуйте.
Пожалуйста, подскажите, как это реализовать?

Имеется MySQL 5.1.67 и phpMyAdmin.
Есть столбец с частично заполненными ячейками. Все пустые ячейки нужно заполнить числами, начиная с 120000. Неважно в каком порядке, главное, без повторений.

На форуме есть пример заполнения пустого столбца
update tablica set stolbec = MinVal + random()*(MaxVal-MinVal)

Но как не затереть существующие данные?

Очень надеюсь на вашу помощь.
pit_alex
Дата: 16.01.2013 12:08:03
JustAnotherUser,

where stolbec is null
tanglir
Дата: 16.01.2013 12:08:06
JustAnotherUser
главное, без повторений

JustAnotherUser
random()
Это никак не может претендовать на "без повторений".

JustAnotherUser
Но как не затереть существующие данные?
where поле_которое_заполняем is not null

или
where поле_которое_заполняем <> 0
в зависимости от того, как оно объявлено.
Покажете show create table - можно будет сказать конкретнее.
pit_alex
Дата: 16.01.2013 12:13:09
tanglir,

where поле_которое_заполняем is not null


is not null
как раз заменит уже существующие данные
miksoft
Дата: 16.01.2013 12:17:39
JustAnotherUser
Есть столбец с частично заполненными ячейками. Все пустые ячейки нужно заполнить числами, начиная с 120000.
А уже имеющиеся значения не попадают в диапазон "начиная с 120000" ?
tanglir
Дата: 16.01.2013 12:19:22
pit_alex
tanglir,

where поле_которое_заполняем is not null



is not null

как раз заменит уже существующие данные
ой-ёёё... вот это я посоветовал. Конечно же, всё наоборот.
JustAnotherUser
Дата: 16.01.2013 12:36:34
Спасибо всем за столь скорые ответы.

tanglir
Покажете show create table - можно будет сказать конкретнее.
`products_model` varchar(255) DEFAULT NULL


miksoft
А уже имеющиеся значения не попадают в диапазон "начиная с 120000" ?
Нет, не попадают.
JustAnotherUser
Дата: 16.01.2013 12:41:04
Ой, забыл.
Для точной уникальности нужно добавить одну букву в начало диапазона, т.е. будет "начиная с "W120000".
Это ведь требует изменений в том запросе, что в первом посте?
tanglir
Дата: 16.01.2013 12:52:42
JustAnotherUser,

значит, поле нулл. Тогда
set @tempvar:=120000+1;

update mytable 
set myfield=concat('W',@tempvar), @tempvar:=@tempvar+1
where myfield is null --конечно же, is null, а не is not null :)
order by id
miksoft
Дата: 16.01.2013 12:54:03
возможно, нужно добавить OR myfield = ''