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

エラー1093(HY000)を修正:MySQL列から最小値を削除しているときに、FROM句で更新のターゲットテーブルを指定できませんか?


まずテーブルを作成しましょう-

mysql> create table DemoTable1597
   -> (
   -> Marks int
   -> );
Query OK, 0 rows affected (0.69 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1597 values(45);
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1597 values(59);
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable1597 values(43);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1597 values(85);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1597 values(89);
Query OK, 1 row affected (0.12 sec)

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

mysql> select * from DemoTable1597;

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

+-------+
| Marks |
+-------+
|    45 |
|    59 |
|    43 |
|    85 |
|    89 |
+-------+
5 rows in set (0.00 sec)

ERROR 1093(HY000)を削除するためのクエリは次のとおりです。ここで最小値を削除します-

mysql> delete from DemoTable1597
   -> where Marks=(
   -> select lowestMarks from ( select min(Marks) as lowestMarks from DemoTable1597 ) as deleteRecord
   -> ) limit 1;
Query OK, 1 row affected (0.11 sec)

テーブルレコードをもう一度確認しましょう-

mysql> select * from DemoTable1597;

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

+-------+
| Marks |
+-------+
|    45 |
|    59 |
|    85 |
|    89 |
+-------+
4 rows in set (0.00 sec)

  1. 「index」という名前のテーブル列を作成する際のMySQL構文のエラーを修正しますか?

    予約語であるため、インデックスを列名として使用することはできません。このためには、列名の前後にバッククォートを使用する必要があります。 列名として予約語を使用すると、次のエラーが表示される可能性があります- mysql> create table DemoTable    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> index int    -> )ENGINE=MyISAM; ERROR 1064 (42

  2. 特定の列の値を修正し、MySQLの残りの行のランダムな値を表示します

    ランダムな行の場合はRAND()を使用できますが、特定の列を修正するにはORDERBY句を使用します。テーブルを作成しましょう- mysql> create table DemoTable1921    (    Number int    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1921 values(40); Query OK, 1 row affecte