Mam wiele rekordów, w których tekst został zapisany w obiekcie blob w MySQL. Dla ułatwienia obsługi chciałbym zmienić format bazy danych na TEKST ... Jakieś pomysły, jak łatwo wprowadzić zmiany, aby nie przerywać danych - Myślę, że będzie trzeba odpowiednio zakodować?
214
SELECT CONVERT(column USING utf8) FROM table;
Oto przykład osoby, która chce przekonwertować obiekt blob na char (1000) z kodowaniem UTF-8 :
To jest jego odpowiedź. Prawdopodobnie o CAST można przeczytać tutaj . Mam nadzieję, że to pomoże.
źródło
Miałem ten sam problem i oto moje rozwiązanie:
źródło
Możesz to zrobić bardzo łatwo.
Powyższe zapytanie działało dla mnie. Mam nadzieję, że ci to pomoże.
źródło
Jeśli używasz MYSQL-WORKBENCH , możesz normalnie wybrać kolumnę obiektów blob i kliknąć kolumnę prawym przyciskiem myszy i kliknąć otwartą wartość w edytorze . patrz zrzut ekranu:
źródło
Lub możesz użyć tej funkcji:
źródło
Za pomocą phpMyAdmin możesz także ustawić opcje wyświetlania zawartości BLOB i wyświetlania pełnego tekstu.
źródło
Żadna z tych odpowiedzi nie działała dla mnie. Kiedy konwertując na UTF8, koder napotka zestaw bajtów, których nie może przekonwertować na UTF8, spowoduje to? podstawienie, które powoduje utratę danych. Musisz użyć UTF16:
Możesz sprawdzić wartości binarne w MySQL Workbench. Kliknij prawym przyciskiem myszy pole -> Otwórz wartość w przeglądarce -> Binarne. Po konwersji z powrotem na BINARY wartości binarne powinny być takie same jak oryginalne.
Alternatywnie możesz po prostu użyć base-64, który został stworzony w tym celu:
źródło