Mysql обновление строки для удаления пробелов во вторичных столбцах - PullRequest
0 голосов
/ 09 июля 2019

Вот так выглядит моя таблица с парой записей.

+--ID--+--DESC--+--ORD--+
| 001  |  lal1  |  003  |
| 002  |  lal2  |  001  |
| 003  |  lal3  |  002  |
| 005  |  lal4  |  004  |
| 006  |  lal5  |  006  |
| 007  |  lal8  |  009  |
+------+--------+-------+

Столбец ORD необходим для установления определенного порядка, который поступает из другой системы, отличной от той,PKey.

На данный момент проблема заключается в пробелах в столбце ORD;Как видите, нет номера 5,7,8.

Этот запрос не работает должным образом:

SET @count = 0;

UPDATE table 
SET table.ord = @count := @count + 1;

ALTER TABLE table AUTO_INCREMENT = 1;

, поскольку он не удаляет пробелы.

Iхотелось бы получить результат, подобный следующему:

+--ID--+--DESC--+--ORD--+
| 001  |  lal1  |  003  |
| 002  |  lal2  |  001  |
| 003  |  lal3  |  002  |
| 005  |  lal4  |  004  |
| 006  |  lal5  |  005  |
| 007  |  lal8  |  006  |
+------+--------+-------+

При работе с UNIX существует команда SORT и временное ее преобразование, я могу сделать это возможным, но я не знаю, есть ли какая-либо команда, которая позволяет мнесделать это через запрос к таблице в режиме реального времени в MySQL.

1 Ответ

0 голосов
/ 10 июля 2019

Решите с этим:

SET @count = 0;
UPDATE tableSET table.ord = @count:= @count + 1 ORDER BY table.ord ASC;

добавить Order By

...