这是我的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
答案 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。