MySQLに重複行を挿入しないようにするにはどうすればよいですか?
MySQLに重複する行を挿入しないようにするには、UNIQUE()を使用できます。構文は次のとおりです-
ALTER TABLE yourTableName ADD UNIQUE(yourColumnName1,yourColumnName2,...N);
上記の構文を理解するために、テーブルを作成しましょう。
テーブルを作成するためのクエリは次のとおりです-
mysql> create table avoidInsertingDuplicateRows -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> FirstValue int, -> SecondValue int -> ); Query OK, 0 rows affected (0.53 sec)
次に、descコマンドを使用してテーブルの説明を確認します。
クエリは次のとおりです-
mysql> desc avoidInsertingDuplicateRows;
サンプル以下は出力です-
+-------------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | FirstValue | int(11) | YES | | NULL | | | SecondValue | int(11) | YES | | NULL | | +-------------+---------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)
MySQLに重複行を挿入しないようにするためのクエリは次のとおりです。テーブルにレコードを挿入するためにinsertコマンドで設定します-
mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20); Query OK, 1 row affected (0.24 sec) mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20); ERROR 1062 (23000): Duplicate entry '10-20' for key 'FirstValue'
selectステートメントを使用して、テーブルのすべてのレコードを表示します。
クエリは次のとおりです-
mysql> select *from avoidInsertingDuplicateRows;
これが出力です-
+----+------------+-------------+ | Id | FirstValue | SecondValue | +----+------------+-------------+ | 1 | 10 | 20 | +----+------------+-------------+ 1 row in set (0.00 sec)
-
MySQLから最後の10行を選択するにはどうすればよいですか?
MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(
-
MySQLテーブルで順序付けられた3行のみを選択するにはどうすればよいですか?
このために、LIMITとともにORDERBY句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1551 -> ( -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> EmployeeName varchar(20) -> ); Query OK, 0 rows affected (0.52 sec) 挿入コマンド-を使用して、テーブルにいく