回答編集履歴

13

推敲

2021/08/08 08:49

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,11 +1,3 @@
1
- 引用符の位置自体がそもそもおかしい気がします。
2
-
3
- (そのままだと全レコードのcategory_nameに固定文字列がセットされます)
4
-
5
-
6
-
7
- 追記
8
-
9
1
  補足のテーブル構造を見ました。以下のようにすると良さそうです。
10
2
 
11
3
 

12

推敲

2021/08/08 08:49

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,12 +1,6 @@
1
- 同じ引用符を2回を使ってる為文法エラーになっています。
1
+ 引用符の位置自体がそもそもおかし気がします。
2
2
 
3
- 片方をエスケープすれば**文法的には**通るはずです。
4
-
5
-
6
-
7
- **ただ引用符の位置自体がそもそもおかしい気がします。**
8
-
9
- (そのままだと全レコードのcategory_nameに固定文字列がセットされてしうので
3
+ (そのままだと全レコードのcategory_nameに固定文字列がセットされま
10
4
 
11
5
 
12
6
 
@@ -16,7 +10,7 @@
16
10
 
17
11
 
18
12
 
19
- 1. まず、category_tableに「ソフト(旧作)」というレコードを追加してください(product_category_idは4とします)。
13
+ 1. まず、category_tableに「ソフト(旧作)」というレコードを追加してください(product_category_idは4になったとします)。
20
14
 
21
15
  2. その後以下のSQLで、2020年以前に発売されたproductのproduct_category_idを4にします。
22
16
 

11

推敲

2021/08/08 08:48

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  1. まず、category_tableに「ソフト(旧作)」というレコードを追加してください(product_category_idは4だとします)。
20
20
 
21
- 2. その後、2020年以前に発売されたproductのproduct_category_idを4にします。
21
+ 2. その後以下のSQLで、2020年以前に発売されたproductのproduct_category_idを4にします。
22
22
 
23
23
  ```sql
24
24
 

10

推敲

2021/08/08 08:45

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,27 +1,27 @@
1
- 同じ引用符を2回を使ってカッコの対応がおかしくなっている為エラーになっています。
1
+ 同じ引用符を2回を使っている為文法エラーになっています。
2
2
 
3
3
  片方をエスケープすれば**文法的には**通るはずです。
4
4
 
5
5
 
6
6
 
7
- ただ恐らく引用符の位置自体がそもそもおかしい気がします。
7
+ **ただ引用符の位置自体がそもそもおかしい気がします。**
8
8
 
9
- (そのままだと全レコードに固定文字列がセットされてしまうので)
9
+ (そのままだと全レコードのcategory_nameに固定文字列がセットされてしまうので)
10
10
 
11
11
 
12
12
 
13
- **追記**
13
+ 追記
14
14
 
15
- 追記のテーブル構造を見ました。以下のようにすると良さそうです。
15
+ 補足のテーブル構造を見ました。以下のようにすると良さそうです。
16
16
 
17
17
 
18
18
 
19
19
  1. まず、category_tableに「ソフト(旧作)」というレコードを追加してください(product_category_idは4だとします)。
20
20
 
21
- 2. その後、条件を満productのproduct_category_idを4にします。
21
+ 2. その後、2020年以前に発売されたproductのproduct_category_idを4にします。
22
22
 
23
23
  ```sql
24
24
 
25
- UPDATE product_table SET product_category_id = 4 where release_date < '2020-1-1';
25
+ UPDATE `product_table` SET product_category_id = 4 WHERE release_date < '2020-1-1';
26
26
 
27
27
  ```

9

推敲

2021/08/08 08:44

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,12 +1,12 @@
1
1
  同じ引用符を2回を使ってカッコの対応がおかしくなっている為エラーになっています。
2
2
 
3
- 片方を別の引用符にするかエスケープすれば**文法的には**通るはずです。
3
+ 片方をエスケープすれば**文法的には**通るはずです。
4
4
 
5
5
 
6
6
 
7
7
  ただ恐らく引用符の位置自体がそもそもおかしい気がします。
8
8
 
9
- そのままだと全レコードに固定文字列がセットされてしまうので
9
+ そのままだと全レコードに固定文字列がセットされてしまうので
10
10
 
11
11
 
12
12
 

8

追記を見て回答を修正

2021/08/08 08:41

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -6,16 +6,22 @@
6
6
 
7
7
  ただ恐らく引用符の位置自体がそもそもおかしい気がします。
8
8
 
9
+ そのままだと全レコードに固定文字列がセットされてしまうので。
10
+
11
+
12
+
13
+ **追記**
14
+
15
+ 追記のテーブル構造を見ました。以下のようにすると良さそうです。
16
+
17
+
18
+
19
+ 1. まず、category_tableに「ソフト(旧作)」というレコードを追加してください(product_category_idは4だとします)。
20
+
9
- 以下が本来書きたかったクエリ(2020年以前に発売されソフトカテゴリ旧作にする)ではないでしょうか?
21
+ 2. その後、条件を満すproductproduct_category_id4しま
10
22
 
11
23
  ```sql
12
24
 
13
- update product_table
14
-
15
- join category_table on product_table.product_category_id
16
-
17
- = category_table.product_category_id
18
-
19
- set category_name = 'ソフト(旧作)' where release_date < "2020-1-1";
25
+ UPDATE product_table SET product_category_id = 4 where release_date < '2020-1-1';
20
26
 
21
27
  ```

7

修正

2021/08/08 08:39

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -16,6 +16,6 @@
16
16
 
17
17
  = category_table.product_category_id
18
18
 
19
- set category_name = 'ソフト(旧作)' where release_date < 2020-1-1;
19
+ set category_name = 'ソフト(旧作)' where release_date < "2020-1-1";
20
20
 
21
21
  ```

6

推敲

2021/08/08 06:05

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,4 +1,4 @@
1
- 同じ引用符を2回を使っており、カッコの対応がらなくなっている為エラーになっています。
1
+ 同じ引用符を2回を使ってカッコの対応がくなっている為エラーになっています。
2
2
 
3
3
  片方を別の引用符にするかエスケープすれば**文法的には**通るはずです。
4
4
 

5

修正

2021/08/08 05:07

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -16,6 +16,6 @@
16
16
 
17
17
  = category_table.product_category_id
18
18
 
19
- set category_name = 'ソフト(旧作)' where release_date < 2020-1-1;
19
+ set category_name = 'ソフト(旧作)' where release_date < 2020-1-1;
20
20
 
21
21
  ```

4

追記

2021/08/08 05:05

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,20 +1,6 @@
1
- 引用符に同じものを使っており、カッコの対応がわからなくなっている為す。
1
+ 同じ引用符を2回を使っており、カッコの対応がわからなくなっている為エラーになっています。
2
2
 
3
- 片方を二重引用符にすれば**文法的には**通るはずです。
3
+ 片方を別の引用符にするかエスケープすれば**文法的には**通るはずです。
4
-
5
-
6
-
7
- ```sql
8
-
9
- update product_table
10
-
11
- join category_table on product_table.product_category_id
12
-
13
- = category_table.product_category_id
14
-
15
- set category_name = "ソフト(旧作) where release_date < ’2020-1-1’;"
16
-
17
- ```
18
4
 
19
5
 
20
6
 

3

追記

2021/08/08 05:05

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,4 +1,6 @@
1
+ 引用符に同じものを使っており、カッコの対応がわからなくなっている為です。
2
+
1
- 引用符に同じものを使っているからです。片方を二重引用符にすれば文法的には通るはずです。
3
+ 片方を二重引用符にすれば**文法的には**通るはずです。
2
4
 
3
5
 
4
6
 
@@ -16,9 +18,9 @@
16
18
 
17
19
 
18
20
 
19
- ただ恐らく引用符の位置がそもそもおかしいと思います。
21
+ ただ恐らく引用符の位置自体がそもそもおかしい気がします。
20
22
 
21
- 以下が本来やりたかったことではないでしょうか?
23
+ 以下が本来書きたかったクエリ(2020年以前に発売されたソフトのカテゴリを旧作にする)ではないでしょうか?
22
24
 
23
25
  ```sql
24
26
 

2

追記

2021/08/08 05:01

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -1,4 +1,4 @@
1
- 引用符に同じものを使っているからです。片方を二重引用符にすれば通るはずです。
1
+ 引用符に同じものを使っているからです。片方を二重引用符にすれば文法的には通るはずです。
2
2
 
3
3
 
4
4
 
@@ -16,4 +16,18 @@
16
16
 
17
17
 
18
18
 
19
- さらにいうと、恐らく引用符の位置もおかしいす。
19
+ ただ恐らく引用符の位置がそそもおかしいと思います。
20
+
21
+ 以下が本来やりたかったことではないでしょうか?
22
+
23
+ ```sql
24
+
25
+ update product_table
26
+
27
+ join category_table on product_table.product_category_id
28
+
29
+ = category_table.product_category_id
30
+
31
+ set category_name = 'ソフト(旧作)' where release_date < ’2020-1-1’;
32
+
33
+ ```

1

追記

2021/08/08 04:58

投稿

Masa-Shin
Masa-Shin

スコア269

test CHANGED
@@ -13,3 +13,7 @@
13
13
  set category_name = "ソフト(旧作) where release_date < ’2020-1-1’;"
14
14
 
15
15
  ```
16
+
17
+
18
+
19
+ さらにいうと、恐らく引用符の位置もおかしいです。