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

MySQLのプリペアドステートメントから変数にSQL結果を割り当てますか?


これには、ストアドプロシージャを使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable(Id int, Name varchar(100));
Query OK, 0 rows affected (1.51 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(10,'John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(11,'Chris');
Query OK, 1 row affected (0.41 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+------+-------+
| Id | Name    |
+------+-------+
| 10 | John    |
| 11 | Chris   |
+------+-------+
2 rows in set (0.00 sec)

以下は、SQL結果をMySQLのプリペアドステートメントから変数に割り当てるためのクエリです-

mysql> DELIMITER //
mysql> CREATE PROCEDURE Prepared_Statement_Demo( nameOfTable VARCHAR(20), IN nameOfColumn VARCHAR(20), IN idColumnName INT)
BEGIN
   SET @holdResult=CONCAT('SELECT ', nameOfColumn, ' INTO @value FROM ', nameOfTable, ' WHERE id = ', idColumnName);
      PREPARE st FROM @holdResult;
      EXECUTE st;
      DEALLOCATE PREPARE st;
   END //
Query OK, 0 rows affected (0.20 sec)
mysql> DELIMITER ;

callコマンドを使用してストアドプロシージャを呼び出します-

mysql> call Prepared_Statement_Demo('DemoTable','Name',10);
Query OK, 0 rows affected, 2 warnings (0.00 sec)

次に、変数@value-

の値を確認します。
mysql> select @value;

これにより、次の出力が生成されます-

+--------+
| @value |
+--------+
| John   |
+--------+
1 row in set (0.00 sec)

  1. ターミナルからMySQLデータベースのSQLファイルを実行しますか?

    データベースでSQLファイルを実行するには、以下の構文を使用する必要があります。 mysql -u yourUserName -p yourDatabaseName < yourFileName.sql 上記の構文を理解するために、windows+Rショートカットキーを使用してコマンドプロンプトを開きます。 スナップショットは次のとおりです。 OKボタンを押すと、コマンドプロンプトが表示されます。スナップショットは次のとおりです。 次に、binディレクトリに到達します。スナップショットは次のとおりです。 これがbinディレクトリにある私のファイル「mydb.s

  2. MySQLクライアントでテキストファイルからSQLステートメントを実行する

    MySQLクライアントのテキストファイルからSQLステートメントを実行する方法を理解しましょう。 mysqlクライアントは一般的にインタラクティブな方法で使用されます。同じ例を見てみましょう- shell> mysql db_name SQLSatementsをテキストファイルに配置する SQLステートメントをファイルに入れてから、その特定のファイルから入力を読み取るようにmysqlに指示することもできます。これを行うには、最初にテキストファイルtext_fileが作成されます。 このテキストファイルには、実行する必要のあるステートメントが含まれています。同じことを理解するために例を