質問編集履歴
2
環境追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -68,6 +68,14 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
+
### 環境
|
72
|
+
|
73
|
+
MariaDB 15.1
|
74
|
+
|
75
|
+
PHP 5.6.24
|
76
|
+
|
77
|
+
|
78
|
+
|
71
79
|
### 質問
|
72
80
|
|
73
81
|
どのようにすればINで指定した数だけ、重複ありで取得できますでしょうか?
|
1
PHP追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -71,3 +71,51 @@
|
|
71
71
|
### 質問
|
72
72
|
|
73
73
|
どのようにすればINで指定した数だけ、重複ありで取得できますでしょうか?
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
アプリケーションで実装すると、汚くなるので出来る限りSQLだけで完結させたいです。
|
80
|
+
|
81
|
+
```PHP
|
82
|
+
|
83
|
+
$accountIds = array(1, 1, 2);
|
84
|
+
|
85
|
+
$results = $db->query('select id, name from accounts where id in('. join(',', $accountIds). ')');
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
$accountIdAndNameList = array();
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
foreach($accountIds as $accountId)
|
94
|
+
|
95
|
+
{
|
96
|
+
|
97
|
+
foreach($results as $x)
|
98
|
+
|
99
|
+
{
|
100
|
+
|
101
|
+
if($accountId == $x->id)
|
102
|
+
|
103
|
+
{
|
104
|
+
|
105
|
+
$data = new stdClass();
|
106
|
+
|
107
|
+
$data->id = $x->id;
|
108
|
+
|
109
|
+
$data->name = $x->name;
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
array_push($accountIdAndNameList, $data);
|
114
|
+
|
115
|
+
}
|
116
|
+
|
117
|
+
}
|
118
|
+
|
119
|
+
}
|
120
|
+
|
121
|
+
```
|