Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bug mysqla, czy mój błąd?, gdy w polu char(40) znajduje się liczba
L_Devil
post 7.08.2006, 12:05:59
Post #1





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 13.04.2004
Skąd: Łódź

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


Witam

Mam tabelę następującej struktury i treści:
Kod
+-------+---------+------------+-------------+
| id    |  owner  |    name    |    value    |
|int(15)| int(7)  |   char(40) |   char(40)  |
+-------+---------+------------+-------------+
|   1   |    1    |   points   |     75      |
|   2   |    1    | points_add |    150      |
|   3   |    1    | points_max |    5000     |
|   4   |    1    |  costam    | jakas_dana  |
|   5   |    2    |  points    |    250      |
|   6   |    2    | points_add |    150      |
|   7   |    2    | points_max |    5000     |
|   8   |    3    |  points    |    4900     |
|   9   |    3    | points_add |    250      |
|  10   |    3    | points_max |    5000     |
|  11   |    4    |  points    |    5500     |
|  12   |    4    | points_add |    250      |
|  13   |    4    | points_max |    5000     |
|  14   |    4    |  costam    | jakas_dana  |
+-------+---------+------------+-------------+


Wywołuję na niej zapytanie
  1. UPDATE
  2. TABLE AS t1,
  3. TABLE AS t2,
  4. TABLE AS t3
  5. SET t1.value =
  6. IF(t1.value > t2.value, t1.value,
  7. IF(t1.value+t3.value > t2.value, t2.value, t1.value+t3.value)
  8. )
  9. WHERE t2.owner = t1.owner AND t3.owner = t1.owner AND t1.name='points' AND t2.name='points_max' AND t3.name='points_add';



Spodziewany rezultat:
Kod
+-------+---------+------------+-------------+
| id    |  owner  |    name    |    value    |
|int(15)| int(7)  |   char(40) |   char(40)  |
+-------+---------+------------+-------------+
|   1   |    1    |   points   |     225     |
|   2   |    1    | points_add |    150      |
|   3   |    1    | points_max |    5000     |
|   4   |    1    |  costam    | jakas_dana  |
|   5   |    2    |  points    |    400      |
|   6   |    2    | points_add |    150      |
|   7   |    2    | points_max |    5000     |
|   8   |    3    |  points    |    5000     |
|   9   |    3    | points_add |    250      |
|  10   |    3    | points_max |    5000     |
|  11   |    4    |  points    |    5500     |
|  12   |    4    | points_add |    250      |
|  13   |    4    | points_max |    5000     |
|  14   |    4    |  costam    | jakas_dana  |
+-------+---------+------------+-------------+


Otrzymany rezultat:
Kod
+-------+---------+------------+-------------+
| id    |  owner  |    name    |    value    |
|int(15)| int(7)  |   char(40) |   char(40)  |
+-------+---------+------------+-------------+
|   1   |    1    |   points   |     75      |  // Tutaj nie podniosło
|   2   |    1    | points_add |    150      |
|   3   |    1    | points_max |    5000     |
|   4   |    1    |  costam    | jakas_dana  |
|   5   |    2    |  points    |    400      |
|   6   |    2    | points_add |    150      |
|   7   |    2    | points_max |    5000     |
|   8   |    3    |  points    |    5000     |
|   9   |    3    | points_add |    250      |
|  10   |    3    | points_max |    5000     |
|  11   |    4    |  points    |    5500     |
|  12   |    4    | points_add |    250      |
|  13   |    4    | points_max |    5000     |
|  14   |    4    |  costam    | jakas_dana  |
+-------+---------+------------+-------------+


Ktoś wie, skąd się takie coś bierze?


--------------------
Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
Go to the top of the page
+Quote Post

Posty w temacie


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: 19.07.2025 - 13:09