mysql> select * from user;
+----+-------+
| id | uname |
+----+-------+
| 1 | vasya |
| 2 | vova |
+----+-------+
2 rows in set (0.00 sec)
mysql> select * from pay;
+----+------+------+
| id | usid | pay |
+----+------+------+
| 1 | 1 | 10 |
| 2 | 1 | 10 |
| 3 | 1 | 10 |
| 4 | 1 | 15 |
+----+------+------+
4 rows in set (0.00 sec)
mysql> select * from balance;
+----+------+------+
| id | usid | val |
+----+------+------+
| 1 | 1 | 9 |
| 2 | 1 | 7 |
| 3 | 1 | 11 |
| 4 | 1 | 23 |
| 5 | 1 | 3 |
+----+------+------+
5 rows in set (0.01 sec)
mysql> select sum(pay) from pay where usid=1 into @a;
Query OK, 1 row affected (0.00 sec)
mysql> select sum(val) from balance where usid=1 into @b;
Query OK, 1 row affected (0.00 sec)
mysql> select if (@a>@b,1,0);
+----------------+
| if (@a>@b,1,0) |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)
mysql> select if (@a>@b,1,0),@a,@b;
+----------------+------+------+
| if (@a>@b,1,0) | @a | @b |
+----------------+------+------+
| 0 | 45 | 53 |
+----------------+------+------+
1 row in set (0.01 sec)
mysql: процедуры и функции
имеется таблица:
_________________
name|value
-------------------
variable1|alpha
variable2|betta
.........
variable100|zetta
_________________
как видно в ней переменные и соответствующие им значения
нужно используя процедуры и функции вывести значение переменной+префикс, который идет в качестве параметра.
нужно чтото типа
call disp("pref_","variable1");
результатом должно быть
pref_alpha
прошу помощи... пытаюсь освободить часть ресурсов с PHP и переложить их на DB
SELECT CONCAT("prefix_",`value`) FROM таблица.
фрагмент логики системы:
Код:
нужно реализовать такую процедуру, при запросе которой бы выполнялось следующее:
в качестве входного параметра идет имя пользователя, результатом выполнения толжно быть 1 - если у пользователя положительный баланс, НИЧЕГО если отрицательный. в данном примере, таблица платежей - pay, таблица расходов - balance
прошу помощи.... загвоздка в том что функции возвращвют результат, но тела у функции нету, в процедуре наоборот есть тело но нильзя возвращать результет, все необходимо выполнять в одном запросе, может мне нехватает знанияй....
к примеру:
Код:
select check_user('vasya');
необходим пример реализации...
разве никто не может помочь ?