テーブルの値を更新するMySQLストアド関数を作成するにはどうすればよいですか?
私たちが知っているように、関数は結果を返したいときに最もよく使われます。したがって、値の挿入や更新などのテーブルを操作するためのストアド関数を作成する場合、それは多かれ少なかれストアドプロシージャのようになります。次の例では、「student_marks」という名前のテーブルの値を更新する「tbl_update」という名前のストアド関数を作成しています。
mysql> Select * from student_marks//
+---------+------+---------+---------+---------+
| Name | Math | English | Science | History |
+---------+------+---------+---------+---------+
| Raman | 95 | 89 | 85 | 81 |
| Rahul | 90 | 87 | 86 | 81 |
| Mohit | 90 | 85 | 86 | 81 |
| Saurabh | NULL | NULL | NULL | NULL |
+---------+------+---------+---------+---------+
4 rows in set (0.00 sec)
mysql> Create Function tbl_Update(S_name Varchar(50),M1 INT,M2 INT,M3 INT,M4 INT)
-> RETURNS INT
-> DETERMINISTIC
-> BEGIN
-> UPDATE student_marks SET Math = M1,English = M2, Science = M3, History =M4 WHERE Name = S_name;
-> RETURN 1;
-> END //
Query OK, 0 rows affected (0.03 sec)
mysql> Select tbl_update('Saurabh',85,69,75,82);
+------------------------------------+
| tbl_update('Saurabh',85,69,75,82) |
+------------------------------------+
| 1 |
+------------------------------------+
1 row in set (0.07 sec)
mysql> Select * from Student_marks;
+---------+------+---------+---------+---------+
| Name | Math | English | Science | History |
+---------+------+---------+---------+---------+
| Raman | 95 | 89 | 85 | 81 |
| Rahul | 90 | 87 | 86 | 81 |
| Mohit | 90 | 85 | 86 | 81 |
| Saurabh | 85 | 69 | 75 | 82 |
+---------+------+---------+---------+---------+
4 rows in set (0.00 sec) -
MySQLで同じ列値を持つ行を返す方法は?
これにはGROUPBY句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> StudentId int, -> StudentMarks int -> ); Query OK, 0 rows affected (4.71 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(23,58);
-
MySQLで月ごとにテーブルの値を合計するにはどうすればよいですか?
これには、EXTRACT()を使用します。これにより、特定の月のレコードを抽出できます。たとえば、1月のすべての価格を追加します(年に関係なく)。 まず、-を作成しましょう mysql> create table DemoTable1415 -> ( -> ProductPurchaseDate date, -> ProductPrice int -> ); Query OK, 0 rows affected (0.53 sec) insert-を使用して、