質問編集履歴

8

解決しました。

2023/01/10 07:07

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,19 @@
1
+ ありがとうございます。
2
+ 1) id=1 OR id=3
3
+ 2)(id=1 OR id=3)
4
+ 違いですが 
5
+ 1)は()がないのでORで id=3 と比較されないため
6
+  ORの影響は受けない。そのため id=1 が独り歩き
7
+  できるので id=1 と書かれ時点で、選択の対象とな
8
+  り出力される。
9
+
10
+ 2)の場合()でくくった時点で、id=1とid=3 が比較され
11
+   真である id=3 が返される。 id=1 は
12
+   AND price<150 AND keyword LIKE '%赤い%'
13
+   のすべての条件を満たしていないため、出力されない。
14
+
15
+  以下解決です。
16
+ -----------------------------------------------------------------
1
17
  1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
2
18
    idが1か3 で、price が 150未満で、keyword に 赤い を含むレコードが存在していません。
3
19
 

7

回答の正当性を知りたいです。

2023/01/09 16:54

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,35 @@
1
+ 1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
2
+   idが1か3 で、price が 150未満で、keyword に 赤い を含むレコードが存在していません。
3
+
4
+ 2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
5
+   id が1 もしくは idが3で price が150未満でkeywordに赤いを含むレコードは、id=1 のレコードのみです。
6
+
7
+ --------------------------------------------------
8
+  以上の回答得ましたが!?
9
+ Aンス:
10
+ id が1 もしくは idが3で price が150未満でkeywordに赤いを含むレコードは、id=1 のレコードのみです。
11
+
12
+ 以上ですが質問があります・
13
+ 「150未満でkeywordに赤いを含むレコードは、id=1 のレコードのみ」
14
+ が正しければですが
15
+ price が150未満で・・・
16
+ SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
17
+  と入力した場合において、以下が出力されるがおかしいと思います。
18
+ -----------------------------------
19
+ id item_name price keyword
20
+ 1 いちご 180 赤い,甘い,ケーキ
21
+ ----------------------------------
22
+  イチゴの price は「180」なので 「price<150」は
23
+ 「150未満が該当する意味」だとしたら?
24
+  それが正しければ price は「180」だから違いますよね
25
+ しかし id1が出力されるのは何故ですか?
26
+
27
+ 根本的に私が間違っていたなら ごめんなさいです。
28
+ よろしくお願いいたします。
29
+  
30
+ 以下は以前、質問内容です。
31
+
32
+
1
33
  テーブル my_items の全データは id 1 2 3 4の4件です。
2
34
  ------------------------------------------------------------
3
35
  id item_name price keyword
@@ -5,7 +37,7 @@
5
37
  2 りんご 90 丸い,赤い,パイ
6
38
  3 バナナ 120 パック,甘い,黄色
7
39
  4 ブルーベリー 200 袋入り,青い,眼精疲労
8
- ---------------------------------------------------------------
40
+ ---------------------------------------------------
9
41
  SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
10
42
  書籍には 以上をカッコでくくってくださいとあります。
11
43
 
@@ -26,20 +58,4 @@
26
58
  -------------------------------------------------------------
27
59
  id item_name price keyword
28
60
  1 いちご 180 赤い,甘い,ケーキ
29
- ----------------------------------------------------------
61
+ -----------------------------------------------
30
-
31
- SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%'
32
- SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150;
33
- -------------------------------------------------------------
34
- id item_name price keyword
35
- 3 バナナ 120 パック,甘い,黄色
36
- ---------------------------------------------------------------
37
-
38
- SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
39
- SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150;
40
- 結果
41
- -------------------------------------------------------------
42
- id item_name price keyword
43
- 1 いちご 180 赤い,甘い,ケーキ
44
- 3 バナナ 120 パック,甘い,黄色
45
- ---------------------------------------------------------------

6

修正

2023/01/08 09:52

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,3 @@
1
- どうもすみません。
2
- 以下の質問の続きです。
3
- https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10273573505
4
1
  テーブル my_items の全データは id 1 2 3 4の4件です。
5
2
  ------------------------------------------------------------
6
3
  id item_name price keyword

5

変更です。

2023/01/08 08:38

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,51 +1,48 @@
1
+ どうもすみません。
2
+ 以下の質問の続きです。
3
+ https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10273573505
1
-  テーブル my_items の全データは id 1 2 3 4の4件です。
4
+ テーブル my_items の全データは id 1 2 3 4の4件です。
2
-  ------------------------------------------------------------
5
+ ------------------------------------------------------------
3
-  id item_name price  keyword
6
+ id item_name price keyword
4
- 1 いちご     180  赤い,甘い,ケーキ
7
+ 1 いちご 180 赤い,甘い,ケーキ
5
-  2 りんご      90  丸い,赤い,パイ
8
+ 2 りんご 90 丸い,赤い,パイ
6
-  3 バナナ     120  パック,甘い,黄色
9
+ 3 バナナ 120 パック,甘い,黄色
7
-  4 ブルーベリー  200 袋入り,青い,眼精疲労
10
+ 4 ブルーベリー 200 袋入り,青い,眼精疲労
8
-  ---------------------------------------------------------------
11
+ ---------------------------------------------------------------
9
-  SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
12
+ SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
10
-  書籍には 以上をカッコでくくってくださいとあります。
13
+ 書籍には 以上をカッコでくくってくださいとあります。
11
-   色々試していますが、エラーばかりになります。 
12
-  カッコでくくった場合、どのようになりますか?
13
-   よろしくお願いいたします。
14
14
 
15
-  結果は以下です。
15
+ 結果は以下です。
16
- ------------------------------------------------------------
17
-  id item_name price  keyword
16
+ id item_name price keyword
18
17
 
19
-  1 いちご     180  赤い,甘い,ケーキ
18
+ 1 いちご 180 赤い,甘い,ケーキ
20
-  3 バナナ     120  パック,甘い,黄色
19
+ 3 バナナ 120 パック,甘い,黄色
20
+ 一応結果でました。
21
+ 以下試しました。1)と2)の違いが分かりませんでした。
22
+ (id=1 OR id=3とした場合、・・値が空・・になるのは何故ですか?
23
+ よろしくお願いいたします。
24
+
25
+ 1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
26
+ 返り値が空でした (行数 0)。 (Query took 0.0006 seconds.)
27
+
28
+ 2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
29
+ -------------------------------------------------------------
30
+ id item_name price keyword
31
+ 1 いちご 180 赤い,甘い,ケーキ
32
+ ----------------------------------------------------------
33
+
34
+ SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%'
35
+ SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150;
36
+ -------------------------------------------------------------
37
+ id item_name price keyword
38
+ 3 バナナ 120 パック,甘い,黄色
21
39
  ---------------------------------------------------------------
22
-  一応結果でました。
23
-  以下試しました。1)と2)の違いが分かりませんでした。
24
-    (id=1 OR id=3とした場合、・・値が空・・になるのは何故ですか?
25
-  よろしくお願いいたします。
26
-  
27
-  1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
28
-   返り値が空でした (行数 0)。 (Query took 0.0006 seconds.)
29
40
 
30
-  2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%い%'
41
+ SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%い%';
42
+ SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150;
43
+ 結果
31
-  -------------------------------------------------------------
44
+ -------------------------------------------------------------
32
-  id item_name  price  keyword
33
-  1 いちご     180  赤い,甘い,ケーキ
34
-  ----------------------------------------------------------
35
-
36
-  SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%'
37
-  SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150;
38
-   id1と2において、値段が150円未満であり、かつ
39
-  -------------------------------------------------------------
40
-  id item_name price  keyword
45
+ id item_name price keyword
46
+ 1 いちご 180 赤い,甘い,ケーキ
41
-  3 バナナ   120  パック,甘い,黄色
47
+ 3 バナナ 120 パック,甘い,黄色
42
-  ---------------------------------------------------------------
48
+ ---------------------------------------------------------------
43
-
44
-  SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
45
-  SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150;
46
-  結果
47
-  -------------------------------------------------------------
48
-  id item_name price  keyword
49
-  1 いちご   180  赤い,甘い,ケーキ
50
-  3 バナナ   120  パック,甘い,黄色
51
-  ---------------------------------------------------------------

4

修正

2023/01/08 08:29

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,7 @@
1
1
   テーブル my_items の全データは id 1 2 3 4の4件です。
2
2
   ------------------------------------------------------------
3
3
   id item_name price  keyword
4
-
5
-  1 いちご     180  赤い,甘い,ケーキ
4
+ 1 いちご     180  赤い,甘い,ケーキ
6
5
   2 りんご      90  丸い,赤い,パイ
7
6
   3 バナナ     120  パック,甘い,黄色
8
7
   4 ブルーベリー  200 袋入り,青い,眼精疲労

3

修正です。

2023/01/08 08:28

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -5,7 +5,7 @@
5
5
   1 いちご     180  赤い,甘い,ケーキ
6
6
   2 りんご      90  丸い,赤い,パイ
7
7
   3 バナナ     120  パック,甘い,黄色
8
-  3 ブルーベリー  200 袋入り,青い,眼精疲労
8
+  4 ブルーベリー  200 袋入り,青い,眼精疲労
9
9
   ---------------------------------------------------------------
10
10
   SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
11
11
   書籍には 以上をカッコでくくってくださいとあります。

2

訂正です。

2023/01/08 08:27

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -1,49 +1,52 @@
1
+  テーブル my_items の全データは id 1 2 3 4の4件です。
2
+  ------------------------------------------------------------
3
+  id item_name price  keyword
4
+
5
+  1 いちご     180  赤い,甘い,ケーキ
6
+  2 りんご      90  丸い,赤い,パイ
7
+  3 バナナ     120  パック,甘い,黄色
8
+  3 ブルーベリー  200 袋入り,青い,眼精疲労
9
+  ---------------------------------------------------------------
1
- SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
10
+  SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
2
- 書籍には 以上をカッコでくくってくださいとあります。
11
+  書籍には 以上をカッコでくくってくださいとあります。
3
-  色々試していますが、エラーばかりになります。 
12
+   色々試していますが、エラーばかりになります。 
4
- カッコでくくった場合、どのようになりますか?
13
+  カッコでくくった場合、どのようになりますか?
14
+   よろしくお願いいたします。
15
+
16
+  結果は以下です。
17
+ ------------------------------------------------------------
18
+  id item_name price  keyword
19
+
20
+  1 いちご     180  赤い,甘い,ケーキ
21
+  3 バナナ     120  パック,甘い,黄色
22
+ ---------------------------------------------------------------
23
+  一応結果でました。
24
+  以下試しました。1)と2)の違いが分かりませんでした。
25
+    (id=1 OR id=3とした場合、・・値が空・・になるのは何故ですか?
5
26
   よろしくお願いいたします。
27
+  
28
+  1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
29
+   返り値が空でした (行数 0)。 (Query took 0.0006 seconds.)
6
30
 
7
- 結果は以下です。
31
+  2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
8
- -----------------------------------------------------------------
32
+  -------------------------------------------------------------
9
-          id item_name price  keyword
33
+  id item_name  price  keyword
34
+  1 いちご     180  赤い,甘い,ケーキ
35
+  ----------------------------------------------------------
10
36
 
37
+  SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%'
38
+  SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150;
39
+   id1と2において、値段が150円未満であり、かつ
40
+  -------------------------------------------------------------
41
+  id item_name price  keyword
11
- 編集 コピー 削除 1 いちご   180  赤い,甘い,ケーキ
42
+  3 バナナ   120  パック,甘い,黄色
43
+  ---------------------------------------------------------------
12
44
 
45
+  SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
46
+  SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150;
47
+  結果
48
+  -------------------------------------------------------------
49
+  id item_name price  keyword
50
+  1 いちご   180  赤い,甘い,ケーキ
13
- 編集 コピー 削除 1 バナナ   120  パック,甘い,黄色
51
+  3 バナナ   120  パック,甘い,黄色
14
- ---------------------------------------------------------------
52
+  ---------------------------------------------------------------
15
- 一応結果でました。
16
- 以下試しました。1)と2)の違いが分かりませんでした。
17
-   (id=1 OR id=3とした場合、・・値が空・・になるのは何故ですか?
18
- よろしくお願いいたします。
19
-  
20
- 1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
21
- 返り値が空でした (行数 0)。 (Query took 0.0006 seconds.)
22
-
23
- 2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
24
- -------------------------------------------------------------
25
-   id item_name price  keyword
26
-
27
- 編集 コピー 削除 1 いちご   180  赤い,甘い,ケーキ
28
- ----------------------------------------------------------
29
-
30
- SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%'
31
- SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150;
32
- id1と2において、値段が150円未満であり、かつ
33
- -------------------------------------------------------------
34
-   id item_name price  keyword
35
-
36
- 編集 コピー 削除 1 バナナ   120  パック,甘い,黄色
37
- ---------------------------------------------------------------
38
-
39
- p.168
40
- SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
41
- SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150;
42
- 結果
43
- -------------------------------------------------------------
44
-   id item_name price  keyword
45
-
46
- 編集 コピー 削除 1 いちご   180  赤い,甘い,ケーキ
47
-
48
- 編集 コピー 削除 1 バナナ   120  パック,甘い,黄色
49
- ---------------------------------------------------------------

1

追伸です。

2023/01/08 08:10

投稿

international
international

スコア16

test CHANGED
File without changes
test CHANGED
@@ -13,4 +13,37 @@
13
13
  編集 コピー 削除 1 バナナ   120  パック,甘い,黄色
14
14
  ---------------------------------------------------------------
15
15
  一応結果でました。
16
+ 以下試しました。1)と2)の違いが分かりませんでした。
17
+   (id=1 OR id=3とした場合、・・値が空・・になるのは何故ですか?
18
+ よろしくお願いいたします。
19
+  
20
+ 1)SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%赤い%'
21
+ 返り値が空でした (行数 0)。 (Query took 0.0006 seconds.)
16
22
 
23
+ 2)SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%赤い%'
24
+ -------------------------------------------------------------
25
+   id item_name price  keyword
26
+
27
+ 編集 コピー 削除 1 いちご   180  赤い,甘い,ケーキ
28
+ ----------------------------------------------------------
29
+
30
+ SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150 AND keyword LIKE '%甘い%'
31
+ SELECT * FROM my_items WHERE (id=1 OR id=3) AND price<150;
32
+ id1と2において、値段が150円未満であり、かつ
33
+ -------------------------------------------------------------
34
+   id item_name price  keyword
35
+
36
+ 編集 コピー 削除 1 バナナ   120  パック,甘い,黄色
37
+ ---------------------------------------------------------------
38
+
39
+ p.168
40
+ SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150 AND keyword LIKE '%甘い%';
41
+ SELECT * FROM my_items WHERE id=1 OR id=3 AND price<150;
42
+ 結果
43
+ -------------------------------------------------------------
44
+   id item_name price  keyword
45
+
46
+ 編集 コピー 削除 1 いちご   180  赤い,甘い,ケーキ
47
+
48
+ 編集 コピー 削除 1 バナナ   120  パック,甘い,黄色
49
+ ---------------------------------------------------------------