用于标识记录而不是IN集的SQL查询

时间:2013-10-11 01:29:09

标签: mysql codeigniter

我在表中插入行。我有 Program_ID,Trip_ID,P_username 基本上所有候选键,以唯一标识任何记录。

我将在插入的新行上设置selected = 1,但同时我希望在表格中与 Program_ID和Trip_ID 组合不匹配的所有行上将其设置为0。

如何在1个查询中完成此操作,最好使用活动记录。

在这种情况下,新参与者 Mike3,Andy2

 foreach( $all_participants as $single_participant )
{

 $this->db->insert('Itinerary', $single_participant);


}

Psuedo代码

 Select Selected from Itinerary
where Program_ID ! = $current_program ID and Trip_ID != $current_trip_id
set selected = '0';

行程表:

---------------------------------------------
| Program_ID | Trip_ID |P_Username|Selected |
---------------------------------------------
| f33r3      | F3231   | Andy2    | 1       |  <- new row selected = 1
---------------------------------------------
| f33r3      | F3231   | Mike3    | 1       |  <- new row selected = 1
---------------------------------------------
| YUAd4      | F3231   | Jane12   | 1       |  <- old row set selected = 0
---------------------------------------------
| Hl341      | F3231   | Mike44   | 0       |  <- Keep at 0
-------------------------------------------- 

0 个答案:

没有答案