MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

テーブルの動的データを使用するMySQLストアド関数を作成するにはどうすればよいですか?


MySQL Stored関数はテーブルを参照できますが、結果セットを返すステートメントを利用することはできません。したがって、結果セットを返すSELECTクエリはないと言えます。しかし、それを取り除くためにSELECTINTOを持つことができます。たとえば、次のレコードを持つ「Student_marks」という名前のテーブルの動的データを使用して、マークの平均を計算する関数「Avg_marks」を作成しています。

mysql> Select * from Student_marks;
+-------+------+---------+---------+---------+
| Name  | Math | English | Science | History |
+-------+------+---------+---------+---------+
| Raman |   95 |      89 |      85 |      81 |
| Rahul |   90 |      87 |      86 |      81 |
+-------+------+---------+---------+---------+
2 rows in set (0.00 sec)

mysql> DELIMITER //
mysql> Create Function Avg_marks(S_name Varchar(50))
    -> RETURNS INT
    -> DETERMINISTIC
    -> BEGIN
    -> DECLARE M1,M2,M3,M4,avg INT;
    -> SELECT Math,English,Science,History INTO M1,M2,M3,M4 FROM Student_marks W
HERE Name = S_name;
    -> SET avg = (M1+M2+M3+M4)/4;
    -> RETURN avg;
    -> END //
Query OK, 0 rows affected (0.01 sec)

mysql> DELIMITER ;
mysql> Select Avg_marks('Raman') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
|          88 |
+-------------+
1 row in set (0.07 sec)

mysql> Select Avg_marks('Rahul') AS 'Raman_Marks';
+-------------+
| Raman_Marks |
+-------------+
|          86 |
+-------------+
1 row in set (0.00 sec)

  1. mysql_fetch_assoc()関数を使用するPHPスクリプトを使用して、MySQLテーブルのすべてのレコードを表示するにはどうすればよいですか?

    これを説明するために、「Tutorials_tbl」という名前のテーブルからすべてのレコードをフェッチしています。 mysql_fetch_assoc()を使用するPHPスクリプトの助けを借りて 次の例の関数- 例 <?php    $dbhost = 'localhost:3036';    $dbuser = 'root';    $dbpass = 'rootpassword';    $conn = mysql_connect($dbhost, $db

  2. いくつかの条件に基づいてテーブルから値を取得するMySQLビューを作成するにはどうすればよいですか?

    特定の条件に基づいてテーブルから値を取得するビューを作成する場合は、ビューの作成時にWHERE句を使用する必要があります。 WHERE句に依存する値がビューに保存されます。 WHERE句を使用してMySQLビューを作成する構文は、次のようになります- 構文 Create View view_name AS Select_statements FROM table WHERE condition(s); 例 上記の概念を説明するために、テーブル「Student_info」からの次のデータを使用しています- mysql> Select * from student_info; +------