Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Konwersja pól ENUM do INT
piotrek24
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 22.07.2006

Ostrzeżenie: (0%)
-----


Mam tabele która zawiera pola ENUM w postaci ('','1','3','5','7') i chce te pola przekonwertować do typu INT i wszystko było by fajnie gdyby nie to że podczas zmiany ENUM na INT polu INT zostaje przypisany indeks pola ENUM (czyli 1,2,3,4,5), a nie jego wczesniej podane wartości.

Jest jakas mozliwosc zeby przekonwertowac pola ENUM do INT bez uzycia php czyli poprzez zapytanie sql?

Jedyne co wymyslilem to przeniesienie wartosci ENUM najpierw do pola VARCHAR i nastepnie do INT, ale chcialbym jeszcze "krócej".
Go to the top of the page
+Quote Post
ferrero2
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


  1.  
  2. SELECT CAST(pole_w_tabeli AS INT) FROM...
  3.  


a tak próbowałeś ?
Go to the top of the page
+Quote Post
piotrek24
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 22.07.2006

Ostrzeżenie: (0%)
-----


Hmmm Twój kod działa, ale po zamianie INT na CHAR. Bo pole enum przy konwersji do stringa własnie zostawia wartosc pola, a przy konwersji do liczby - indeks. A INT nie tylko ze nie dziala ale w ogóle wywala błąd. No ale niewazne. Wazne ze z char dziala jak trzeba. Dzieki za pomoc.

PS A jak przekonwertowac wszystkie pola w tabeli bez koniecznosci wymieniania nazw wszytskich pól? (tabela ma 57 pól..)

  1. INSERT INTO tabela1 SELECT CAST(* AS char) FROM tabela2


nie działa...


Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 22:02