Mysql стойност

Hous

Registered
Имам в една таблица в едно от полетата колонка със примерни стойности:
3.00
2.00
-4.00
и сега ми трябва
Код:
select t1.stoinosti,t1.stoinosti_date,t2.user_id,t2.user_name from ".prefix."history t1, ".prefix."user t2 ORDER BY stoinosti_date DESC LIMIT 5


скриптче да стане АКО преди стойността няма символа " - "
да изписва Плюс 3
ако пък има - както е в примера -4.00
да изписва Минус 4

мисля,че е със mysql функция (вградена някаква имаше) но не мога да се сетя,а пък и съм сигурен ,че вие разбирате за какво говоря.
 
Какъв е типа на полето, в което съхраняваш тези стойности?

Ако е float или decimal:

Код:
mysql> create table product (rating float(10,2) not null);
Query OK, 0 rows affected (0.39 sec)

mysql> insert into product values (0), (-1), (5.32), (-4.21), (211);
Query OK, 5 rows affected (0.28 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from product;
+--------+
| rating  |
+--------+
|   0.00  |
|  -1.00  |
|   5.32  |
|  -4.21  |
| 211.00|
+--------+
5 rows in set (0.00 sec)

mysql> select rating, CASE WHEN rating = 0 THEN rating WHEN rating < 0 THEN CONCAT_WS(' ', 'Минус', ABS(rating))  ELSE CONCAT_WS(' ', 'Плюс', rating) END as label from product;
+--------+-----------------+
| rating | label                |
+--------+-----------------+
|   0.00   |  0.00             |
|  -1.00   | Минус 1.00   |
|   5.32   | Плюс 5.32     |
|  -4.21   | Минус 4.21   |
| 211.00 | Плюс 211.00 |
+--------+-----------------+
5 rows in set (0.00 sec)
 
Опитах така но ми дава грешки You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE WHEN stoinost = 0 THEN stoinost WHEN stoinost < 0 T' at line 1




Мислех си по скоро само стойностите да идват от mysql а да се изписва текста Плюс или Минус чрез php скрипт ... ?
 
Всъщност го оправих със php, просто mysql ми даде доста грешки и реших да пробвам.
Код:
if($u_stat > 0) { $u_statt="Плюс ".$u_stat." ";}
echo $u_statt;
 
Точно така...проверяваш дали числото е по-голямо или по-малко от нула и според това определяш какво ще се изпише.
 
Ако ми покажеш цялата заявка, която ти е давала тази грешка, вероятно ще я оправя. Вероятно е някоя изпусната запетая, кавичка или нещо такова.
 

Back
Горе