Мне нужно делать то, что я здесь делаю для целой таблицы:
UPDATE users SET name = CONVERT(CAST(convert(name using latin1) as BINARY) USING utf8);
Как это сделать с запросом ALTER TABLE?
Прежде всего, убедитесь, что это правильное исправление.
Если я не ошибаюсь, вы пытаетесь отменить "двойное кодирование"?
См. Это для симптомов: проблема с символами UTF-8; я не вижу того, что я хранил
См. Это, где применяется исправление: http://mysql.rjweb.org/doc.php/charcoll#fixes_for_various_cases
а именно
CHARACTER SET utf8mb4 с двойным кодированием:
UPDATE tbl SET col = CONVERT(BINARY(CONVERT(col USING latin1)) USING utf8mb4);
Выгрузите таблицу, загрузите ее в другое место, запустите преобразование, проверьте результаты, особенно получив SELECT col, HEX(col)...
Пусть say columnA определяется как VARCHAR (25) CHARACTER SET latin1, затем вы можете изменить его на utf8, чтобы он мог иметь разные значения из разных языков, используя ниже:
ALTER TABLE yourTable MODIFY columnA VARCHAR(25) CHARACTER SET utf8;
name
вашего столбца? Я предположил, что это CHAR; нет?