Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Zapis w postaci 10E2
slawek3422
post
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 7
Dołączył: 3.08.2007
Skąd: śląsk

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


Witam.
Czy jest jakiś sposób na zapisanie w bazie MySQL wartości w postaci 10E2. Jaki typ danych wybrać ? Nie chodzi mi o VARCHAR dlatego, że w przypadku gdy wybieram z dwóch wierszy (5E2, 3E7) wartość najmniejszą MIN () to w wyniku dostaję 3E7 co jest błędem. Z kolei jeżeli jako typ wybieram INT to przy zapisie 3E4 MySQL konwertuje wartość i wpisuje 30000 a ja potrzebuje zapis bez konwersji i dodatkowo żeby poprawnie działały funkcje MAX i MIN ...

Już się pogodziłem z faktem, że musi zostać INT i później w PHP będzie zabawa ze zmianą na zapis z E, ale postanowiłem jeszcze zapytać fachowców (IMG:style_emoticons/default/smile.gif)

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Ok nie jest to najwydajniejsze rozwiązanie ale w sumie czemu nie (IMG:style_emoticons/default/smile.gif)

Robisz normalnie tabelkę z polami VARCHAR - nic prostszego - zapisujesz do nich sobie te wartości wprost jako na przykład '2.8E3' (IMG:style_emoticons/default/smile.gif)

Następnie przy zapytaniach używaj funkcji CAST():
(założmy że pole "liczba" ma zapisaną wartość '2.8E3')
  1.  
  2. SELECT CAST(liczba AS decimal) AS liczba FROM (...) -- zwróci nam 2800 czyli to co trzeba
  3.  
  4. SELECT MAX(CAST(liczba AS decimal)) AS max_liczba FROM (...)
  5.  
  6. SELECT (...) FROM (...) ORDER BY CAST(liczba AS decimal) ASC
  7.  
  8. -- i tak dalej...
  9.  


Po problemie (IMG:style_emoticons/default/wink.gif)

Swoją drogą to nietypowe rozwiązanie ale napewno zadziała (IMG:style_emoticons/default/wink.gif)

Ten post edytował Sephirus 1.02.2012, 15:44:05
Go to the top of the page
+Quote Post

Posty w temacie


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: 5.10.2025 - 17:15