MySQLでソートし、値をインクリメントしますか?
updateコマンドをユーザー定義変数と一緒に使用できます。まずテーブルを作成しましょう-
mysql> create table DemoTable ( FirstName varchar(20), Position int ); Query OK, 0 rows affected (0.71 sec)
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values('Chris',100); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Robert',120); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values('David',130); Query OK, 1 row affected (0.16 sec)
以下は、selectステートメント-
を使用してテーブルのすべてのレコードを表示するためのクエリです。mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-----------+----------+ | FirstName | Position | +-----------+----------+ | Chris | 100 | | Robert | 120 | | David | 130 | +-----------+----------+ 3 rows in set (0.00 sec)
以下は、フィールドを並べ替えて値を10ずつインクリメントするクエリです-
mysql> SET @myPosition := 100; Query OK, 0 rows affected (0.00 sec) mysql> update DemoTable set Position = @myPosition:=@myPosition+10 ORDER BY Position; Query OK, 1 row affected (0.17 sec) Rows matched: 3 Changed: 1 Warnings: 0
テーブルからレコードをもう一度確認しましょう:mysql> select * from DemoTable-
これにより、次の出力が生成されます-
+-----------+----------+ | FirstName | Position | +-----------+----------+ | Chris | 110 | | Robert | 120 | | David | 130 | +-----------+----------+ 3 rows in set (0.00 sec)
-
MySQLで初期値と自動インクリメントを設定するにはどうすればよいですか?
AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。列が「NOTNULL」として宣言されている場合、その列にNULLを割り当てて、一連の数字を生成することができます。 AUTO_INCREMENT列に値が挿入されると、列はその値に設定され、シーケンスもリセットされるため、最大の列値から順番に値が自動的に生成されます。 既存の「AUTO_INCREMENT」列を更新して、「AUTO_INCREMENT」シーケンスもリセットできます。最新の自動生成された「AUTO_INCREMENT;値は、SQLの「LAST_INSERT_ID()」関数を使用するか、C AP
-
++のインクリメントとデクリメント-C++の演算子
インクリメント演算子++はオペランドに1を加算し、デクリメント演算子--はオペランドから1を減算します。だから、 x = x+1; is the same as x++; 同様に、 x = x-1; is the same as x--;と同じです インクリメント演算子とデクリメント演算子はどちらも、オペランドの前(プレフィックス)または後(ポストフィックス)のいずれかになります。 x = x+1; can be written as ++x; 式の一部としてインクリメントまたはデクリメントを使用する場合、接頭辞と接尾辞の形式に重要な違いがあることに注意してください。プレフィックス形式を