2017-03-09 56 views
-1

这里是我的MySQL查询当Zend框架的情况下更新查询

UPDATE uss20_prj_avunea.tbl_loc_images SET img_sortorder = CASE img_id WHEN 210 THEN 1 WHEN 211 THEN 2 WHEN 67 THEN 3 WHEN 62 THEN 4 WHEN 207 THEN 5 WHEN 208 THEN 6 WHEN 209 THEN 7 END WHERE img_id IN (210, 211, 67, 62, 207, 208, 209) 

我有动态图像ID组可以增加或减少 有人能帮助我,为上述MySQL查询Zend的PDO

回答

-1

试试这种方式:

UPDATE uss20_prj_avunea.tbl_loc_images SET img_sortorder = 
(SELECT CASE WHEN img_id = 210 THEN 1 
WHEN img_id = 211 THEN 2 
WHEN img_id = 67 THEN 3 
WHEN img_id = 62 THEN 4 
WHEN img_id = 207 THEN 5 
WHEN img_id = 208 THEN 6 
WHEN img_id = 209 THEN 7 END from tbl_loc_images) 
WHERE img_id IN (210, 211, 67, 62, 207, 208, 209) 

尚未测试。

我想它会返回一个错误,因为您只需要记录SET img_sortorder。你可以尝试限制1,如果工作。

+0

我需要PDO语句我已经有mysql查询 – RaviPatidar

1

new \ Zend \ Db \ Sql \ Expression(CASE img_id when 210 then 1 when 211 then 2 when 67 then 3 when 62 then 4 when 207 then 5 when 208 then 6 when 209 then 7 end) WHERE img_id IN (210,211,67,62,207,208,209)

对此使用Zf2表达式。希望它能帮助你。