zend框架中的when case update查询
When case update query in zend framework
这是我的 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
这样试试:
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)
尚未测试。
我认为它 returns 是一个错误,因为您只需要记录 SET img_sortorder。如果有效,您可以尝试将其限制为1。
new \Zend\Db\Sql\Expression(CASE img_id 当 210 然后 1 当 211 然后 2 当 67 然后 3 当 62 然后 4 当 207 然后 5 当 208 然后 6 当 209 然后 7 结束 )
其中 img_id 在 ( 210, 211, 67, 62, 207, 208, 209 )
为此使用 Zf2 表达式。希望对你有帮助。
这是我的 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这样试试:
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)
尚未测试。
我认为它 returns 是一个错误,因为您只需要记录 SET img_sortorder。如果有效,您可以尝试将其限制为1。
new \Zend\Db\Sql\Expression(CASE img_id 当 210 然后 1 当 211 然后 2 当 67 然后 3 当 62 然后 4 当 207 然后 5 当 208 然后 6 当 209 然后 7 结束 ) 其中 img_id 在 ( 210, 211, 67, 62, 207, 208, 209 )
为此使用 Zf2 表达式。希望对你有帮助。