Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> liczba ujemna w polu tworzonym "w locie"
kacpero1094
post 22.08.2011, 20:21:59
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 22.12.2008

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


Napisałem sobie zapytanie:
  1. SELECT *, (r.ratePlus - r.rateMinus) AS rate FROM elements AS e JOIN rates AS r ON e.eId = r.eId ORDER BY rate DESC LIMIT 10

I problem w tym, że jeśli r.ratePlus > r.rateMinus, to zwracane są dziwne liczby zamiast liczb ujemnych. Czy jest jakiś sposób, żeby określić, że to rate definiowane na początku ma mieć atrybut SIGNED?


--------------------
kacperkolodziej.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
mortus
post 22.08.2011, 20:50:11
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(kacpero1094 @ 22.08.2011, 21:21:59 ) *
I problem w tym, że jeśli r.ratePlus > r.rateMinus, to zwracane są dziwne liczby zamiast liczb ujemnych.

Jak dla mnie zwracane są prawidłowo liczby dodatnie.
Go to the top of the page
+Quote Post
Smertius
post 22.08.2011, 20:52:47
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 31
Dołączył: 23.02.2009
Skąd: Sanok

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


  1. CAST(nazwa_kolumny AS SIGNED)
Go to the top of the page
+Quote Post
kacpero1094
post 22.08.2011, 21:03:51
Post #4





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 22.12.2008

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


Cytat(mortus @ 22.08.2011, 21:50:11 ) *
Jak dla mnie zwracane są prawidłowo liczby dodatnie.

Sorry. Zagapiłem się. Oczywiście znak powinien być odwrotnie smile.gif


--------------------
kacperkolodziej.pl
Go to the top of the page
+Quote Post
mortus
post 22.08.2011, 21:09:40
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


No to jeśli kolumny ratePlus i rateMinus są unsigned, to trzeba je rzutować, tak jak pisał Smertius.
  1. SELECT *, (CAST(r.ratePlus AS SIGNED) - CAST(r.rateMinus AS SOGNED)) AS rate FROM elements AS e JOIN rates AS r ON e.eId = r.eId ORDER BY rate DESC LIMIT 10

Jeśli natomiast kolumny nie są unsigned, to być może przekraczają zakres odpowiedniego typu i trzeba ten zakres zwiększyć lub zmienić typ kolumny.
Go to the top of the page
+Quote Post
kacpero1094
post 22.08.2011, 21:12:30
Post #6





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 22.12.2008

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


Cytat(Smertius @ 22.08.2011, 21:52:47 ) *
  1. CAST(nazwa_kolumny AS SIGNED)

Dzięki smile.gif


--------------------
kacperkolodziej.pl
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:42