質問編集履歴

2

環境追加

2016/11/23 11:08

投稿

aglkjggg
aglkjggg

スコア769

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追加

2016/11/23 11:08

投稿

aglkjggg
aglkjggg

スコア769

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
+ ```