2
取唯一值,現在我有一個交叉引用表,看起來像這樣:來自交叉引用表
Table job2pos
╔═══════════╦═════════════╗
║ job_id ║ position_id ║
╠═══════════╬═════════════╣
║ 1 ║ 10 ║
║ 2 ║ 10 ║
║ 2 ║ 12 ║
║ 3 ║ 11 ║
║ 3 ║ 13 ║
║ 4 ║ 10 ║
║ 5 ║ 13 ║
╚═══════════╩═════════════╝
我要選擇所有具有job_id
的postion_id = 10
和position_id = 12
,這將導致job_id = 1,2,2,4
。但我只想要job_id = 2
在我提取的結果中只出現一次。
我試過的代碼如下:
$positions = ["10","12"];
$sql = "SELECT job2pos.job_id FROM job2pos
WHERE job2pos.pos_id IN (?,?)";
$stmt = $pdo->prepare($sql);
foreach ($positions as $key => &$val) {
$stmt->bindParam($key, $val, \PDO::PARAM_INT);
}
$stmt->execute();
var_dump($stmt->fetchAll(\PDO::FETCH_UNIQUE));
和上面的嘗試將會產生如下結果:
array(3) {
[1]=> array(0) {}
[2]=> array(0) {}
[4]=> array(0) {}
}
所以我沒有得到獨特的價值觀和額外的2不重複,但我該如何做到這一點,以便job_id
不會作爲索引出現,而是作爲數組中的一個值出現?
- P.S.如果你可以指出我的代碼中的任何不必要的代碼,那也會很棒。
使用'標準'PDO :: FETCH_ASSOC' –
或者'你目前的結果array_keys'選擇distinct'。 –
請在** position_id **之後將╬更改爲╣。這太接近完美了。 – Mihailo