【问题标题】:When case update query in zend frameworkzend框架中的case更新查询时
【发布时间】:2017-07-29 22:48:10
【问题描述】:

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

【问题讨论】:

    标签: mysql zend-framework 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。

    【讨论】:

      【解决方案2】:

      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 表达式。希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多