MySQLクエリの実行を停止するにはどうすればよいですか?
実行中のMySQLクエリを停止するために、プロセスIDを指定してKILLコマンドを使用できます。構文は次のとおりです-
kill processId;
または、以下の構文を使用して、実行中のMySQLクエリを停止できます-
call mysql.rds_kill(queryId);
まず、showコマンドを使用してprocessIdを取得しましょう。クエリは次のとおりです-
mysql> show processlist;
これがプロセスのリストを含む出力です-
+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+ | 4 | event_scheduler | localhost | NULL | Daemon | 221718 | Waiting on empty queue | NULL | | 47 | root | localhost:60722 | business | Query | 0 | starting | show processlist | +----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+ 2 rows in set (0.03 sec)
ここでは、2つのプロセスがMySQLで実行されており、そのうちの1つを停止する場合は、「KILL」を使用して特定のIDで上記の構文を使用できます
クエリは次のとおりです-
mysql> kill 47; ERROR 1317 (70100): Query execution was interrupted
または、mysql.rds_kill(id)を使用してこれを行うことができます。クエリは次のとおりです-
mysql> CALL mysql.rds_kill(47); ERROR 2013 (HY000): Lost connection to MySQL server during query
-
クエリがMySQLでnull値を返す場合、どうすれば0を設定できますか?
このために、IFNULL()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Value int -> ); Query OK, 0 rows affected (0.71 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into
-
MySQLクエリでORステートメントが多すぎるのを避けるにはどうすればよいですか?
MySQL IN()を使用して、ORステートメントが多すぎないようにします。まずテーブルを作成しましょう- mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(40) ); Query OK, 0 rows affected (0.89 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable(Name) values('