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)
-
ターミナルからMySQLデータベースのSQLファイルを実行しますか?
データベースでSQLファイルを実行するには、以下の構文を使用する必要があります。 mysql -u yourUserName -p yourDatabaseName < yourFileName.sql 上記の構文を理解するために、windows+Rショートカットキーを使用してコマンドプロンプトを開きます。 スナップショットは次のとおりです。 OKボタンを押すと、コマンドプロンプトが表示されます。スナップショットは次のとおりです。 次に、binディレクトリに到達します。スナップショットは次のとおりです。 これがbinディレクトリにある私のファイル「mydb.s
-
MySQLクライアントでテキストファイルからSQLステートメントを実行する
MySQLクライアントのテキストファイルからSQLステートメントを実行する方法を理解しましょう。 mysqlクライアントは一般的にインタラクティブな方法で使用されます。同じ例を見てみましょう- shell> mysql db_name SQLSatementsをテキストファイルに配置する SQLステートメントをファイルに入れてから、その特定のファイルから入力を読み取るようにmysqlに指示することもできます。これを行うには、最初にテキストファイルtext_fileが作成されます。 このテキストファイルには、実行する必要のあるステートメントが含まれています。同じことを理解するために例を