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

質問編集履歴

5

足りないフィールド名の追加

2020/01/31 03:00

投稿

Hir19
Hir19

スコア12

title CHANGED
File without changes
body CHANGED
@@ -6,12 +6,12 @@
6
6
  code1,code2,code3の3つのフィールドにAND検索を行いたい。
7
7
 
8
8
  Sample Table
9
- |sample_id|code1|code2|code3|
9
+ |sample_id|code1|code2|code3|is_deleted|
10
- |:--|:--:|:--:|--:|
10
+ |:--|:--:|:--:|:--:|--:|
11
- |1|700|500|600|
11
+ |1|700|500|600|false|
12
- |2|600|100|null|
12
+ |2|600|100|null|false|
13
- |3|200|500|null|
13
+ |3|200|500|null|false|
14
- |4|800|500|600|
14
+ |4|800|500|600|false|
15
15
  |||||
16
16
 
17
17
  上記のテーブルがあった場合、

4

文書、データ修正

2020/01/31 03:00

投稿

Hir19
Hir19

スコア12

title CHANGED
File without changes
body CHANGED
@@ -10,18 +10,18 @@
10
10
  |:--|:--:|:--:|--:|
11
11
  |1|700|500|600|
12
12
  |2|600|100|null|
13
- |3|700|500|null|
13
+ |3|200|500|null|
14
14
  |4|800|500|600|
15
15
  |||||
16
16
 
17
17
  上記のテーブルがあった場合、
18
18
  リクエストが$codes = [100,200,300]としたら
19
- 検索結果として"sample_id = 2"のレコードを取得したい。
19
+ 検索結果として"sample_id = 2,3"のレコードを取得したい。
20
20
 
21
21
  ### 発生している問題
22
22
  code1,code2,code3というフィールドにwhereInをかけているのですが、
23
23
  条件に引っかからない場合スルーしてほしいのにひっかかり、
24
- で返ってきてしまう
24
+ 全件で返ってきてしまう(is_deletedのfalseが原因?)
25
25
 
26
26
  ### 該当のソースコード
27
27
 

3

全体的にわかりにくいため例文コード含め修正

2020/01/31 02:12

投稿

Hir19
Hir19

スコア12

title CHANGED
File without changes
body CHANGED
@@ -2,20 +2,21 @@
2
2
 
3
3
  初めての投稿なので足りないことだらけになってしまうと思いますが...。
4
4
 
5
- 現在検索機能を作っていまして、フロント側からリクエストが
5
+ 現在検索機能を作っていて、配列のリクエストが来た場合、
6
- $codes = [1,2,3]と配列のリクエストが来た場合、
7
- code1,code2,code3というフィールドにwhereInでAND検索をたい。
6
+ code1,code2,code3の3つのフィールドにAND検索を行いたい。
8
7
 
9
8
  Sample Table
10
9
  |sample_id|code1|code2|code3|
11
10
  |:--|:--:|:--:|--:|
12
- |1|9|0|9|
11
+ |1|700|500|600|
13
- |2|9|1|null|
12
+ |2|600|100|null|
14
- |3|9|0|null|
13
+ |3|700|500|null|
14
+ |4|800|500|600|
15
15
  |||||
16
16
 
17
17
  上記のテーブルがあった場合、
18
+ リクエストが$codes = [100,200,300]としたら
18
- 検索結果として"sample_id = 2"が出てきてほしい
19
+ 検索結果として"sample_id = 2"のレコードを取得
19
20
 
20
21
  ### 発生している問題
21
22
  code1,code2,code3というフィールドにwhereInをかけているのですが、
@@ -25,18 +26,23 @@
25
26
  ### 該当のソースコード
26
27
 
27
28
  ```php
28
- $mansion_query = Mansion::query();
29
+ $sample_query = Sample::query();
29
30
  $display = self::displayResultData();
30
31
  $mansion_query->where(self::SAMPLE_TABLE . '.is_deleted', false)
31
32
  ->whereIn(self::SAMPLE_TABLE . '.code1', $codes)
32
33
  ->whereIn(self::SAMPLE_TABLE . '.code2', $codes)
33
- ->whereIn(self::SAMPLE_TABLE . '.code3', $ecodes)
34
+ ->whereIn(self::SAMPLE_TABLE . '.code3', $codes)
34
35
  ->select($display);
36
+
37
+     $result = $sample_query->get();
38
+
35
39
  ```
36
40
  ※$displayはselectで出したいフィールド名が書いてあります。
37
41
  ### 試したこと
38
42
 
43
+ whereの文をコメントアウトし、WhereIn(self::SAMPLE_TABLE . '.code1', $codes, 'OR')
39
- 配列なのでWhereInでの記述にしましたなぜかsample_id =1,2,3すべてが取れまう
44
+ するとほい結果が取れるが、deleteたレコード取得はしたくないため、
45
+ whereの文を消せない。
40
46
 
41
47
  ### 補足情報(FW/ツールのバージョンなど)
42
48
 

2

テーブルデータ変更

2020/01/31 01:47

投稿

Hir19
Hir19

スコア12

title CHANGED
File without changes
body CHANGED
@@ -9,7 +9,7 @@
9
9
  Sample Table
10
10
  |sample_id|code1|code2|code3|
11
11
  |:--|:--:|:--:|--:|
12
- |1|9|0|null|
12
+ |1|9|0|9|
13
13
  |2|9|1|null|
14
14
  |3|9|0|null|
15
15
  |||||

1

$displayについての追記

2020/01/30 07:39

投稿

Hir19
Hir19

スコア12

title CHANGED
File without changes
body CHANGED
@@ -33,7 +33,7 @@
33
33
  ->whereIn(self::SAMPLE_TABLE . '.code3', $ecodes)
34
34
  ->select($display);
35
35
  ```
36
-
36
+ ※$displayはselectで出したいフィールド名が書いてあります。
37
37
  ### 試したこと
38
38
 
39
39
  配列なのでWhereInでの記述にしましたがなぜかsample_id =1,2,3すべてが取れてしまう