在zend框架中进行案例更新查询时

时间:2017-03-09 04:57:45

标签: mysql zend-framework pdo

这是我的mysql查询

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

2 个答案:

答案 0 :(得分:1)

new \ Zend \ Db \ Sql \ Expression(CASE img_id,当时210那么当211那么2当67那么3当62那么4当207那么5当208那么6当209那么7结束时) 在哪里img_id IN(210,211,67,62,207,208,209)

为此使用Zf2表达式。希望它会对你有所帮助。

答案 1 :(得分:-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。