質問するログイン新規登録

質問編集履歴

4

より明確にした

2020/12/02 23:15

投稿

orori
orori

スコア42

title CHANGED
File without changes
body CHANGED
@@ -4,15 +4,16 @@
4
4
  @y:=@y+1; @x:=1
5
5
 
6
6
  区切りのセミコロンをandにしたり全体をカッコにいれてみたりしましたが、うまくいきません。
7
- 内容は、既存のplaceテーブルがあり、そのzカラムの値が直前のレコードから変化している場合は、
8
7
 
8
+ 全体の作業としては既存のplaceテーブルがあり、そのzカラムの値が直前のレコードから変化している場合は、
9
+
9
10
  @y:=@y+1; @x:=1
10
- を実行、そうではない場合は以下を実行し
11
+ を実行、そうではない場合は以下を実行します。
11
12
 
12
13
  @x:=@x+1
13
14
 
14
- 結果のSELECT文をもとに新テーブルを作成しようと思っています。
15
+ 記載していませんが、ここで得られたSELECT文をもとに新テーブルを作成しようと思っています。
15
- 以下全体のSQL文です。
16
+ 以下SQL文です。
16
17
 
17
18
  ```sql
18
19
  set @x:=0;

3

より明確にした

2020/12/02 23:15

投稿

orori
orori

スコア42

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,9 @@
1
- 環境はMySQL8です。
1
+ 環境はMySQL8.0.21です。
2
2
  以下のように、if文内で、2つの代入式を実行させたいのですが、エラーとなります。
3
3
 
4
4
  @y:=@y+1; @x:=1
5
5
 
6
- 区切りのセミコロンをandにしたりカッコにいれてみたりしましたが、うまくいきません。
6
+ 区切りのセミコロンをandにしたり全体をカッコにいれてみたりしましたが、うまくいきません。
7
-
8
7
  内容は、既存のplaceテーブルがあり、そのzカラムの値が直前のレコードから変化している場合は、
9
8
 
10
9
  @y:=@y+1; @x:=1

2

よりわかりやすくした

2020/12/02 23:06

投稿

orori
orori

スコア42

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,20 @@
1
+ 環境はMySQL8です。
1
2
  以下のように、if文内で、2つの代入式を実行させたいのですが、エラーとなります。
2
3
 
3
4
  @y:=@y+1; @x:=1
4
5
 
5
- 区切りのセミコロンをandにしたりてみましたが、うまくいきません。
6
+ 区切りのセミコロンをandにしたりカッコにいれてみたりしましたが、うまくいきません。
6
7
 
7
- 以下全体のコードです。
8
+ 内容は、既存placeテーブルがあり、そのzカラムの値が直前のレコードから変化している場合は、
8
9
 
10
+ @y:=@y+1; @x:=1
11
+ を実行、そうではない場合は以下を実行し、
12
+
13
+ @x:=@x+1
14
+
15
+ 結果のSELECT文をもとに新テーブルを作成しようと思っています。
16
+ 以下全体のSQL文です。
17
+
9
18
  ```sql
10
19
  set @x:=0;
11
20
  set @y:=1;
@@ -19,4 +28,4 @@
19
28
  from place;
20
29
  ```
21
30
 
22
- どのうにたらよょうか
31
+ くお願いたます

1

よりわかりやすく余計な情報を削除した

2020/12/02 23:01

投稿

orori
orori

スコア42

title CHANGED
File without changes
body CHANGED
@@ -4,18 +4,19 @@
4
4
 
5
5
  区切りのセミコロンをandにしたりしてみましたが、うまくいきません。
6
6
 
7
- 以下一応全体のコードです。
7
+ 以下全体のコードです。
8
8
 
9
9
  ```sql
10
10
  set @x:=0;
11
11
  set @y:=1;
12
+ set @z:=null;
12
13
 
13
14
  select
14
- if(@block!=p.block, @y:=@y+1; @x:=1, @x:=@x+1),
15
+ if(@z!=place.z, (@y:=@y+1; @x:=1), @x:=@x+1),
15
16
  @x,
16
17
  @y,
17
- eps.*
18
+ @z:=place.z
18
- from place p
19
+ from place;
19
20
  ```
20
21
 
21
22
  どのようにしたらよいでしょうか。