質問編集履歴
5
足りないフィールド名の追加
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
文書、データ修正
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|
|
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
全体的にわかりにくいため例文コード含め修正
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
|
6
|
+
code1,code2,code3の3つのフィールドにAND検索を行いたい。
|
8
7
|
|
9
8
|
Sample Table
|
10
9
|
|sample_id|code1|code2|code3|
|
11
10
|
|:--|:--:|:--:|--:|
|
12
|
-
|1|
|
11
|
+
|1|700|500|600|
|
13
|
-
|2|
|
12
|
+
|2|600|100|null|
|
14
|
-
|3|
|
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
|
-
$
|
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', $
|
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
|
-
|
44
|
+
にするとほしい結果が取れるが、deleteしたレコード取得はしたくないため、
|
45
|
+
whereの文を消せない。
|
40
46
|
|
41
47
|
### 補足情報(FW/ツールのバージョンなど)
|
42
48
|
|
2
テーブルデータ変更
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|
|
12
|
+
|1|9|0|9|
|
13
13
|
|2|9|1|null|
|
14
14
|
|3|9|0|null|
|
15
15
|
|||||
|
1
$displayについての追記
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すべてが取れてしまう
|