2017-03-09 96 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表達式。希望它能幫助你。