. 我不能在zend中运行这个简单的代码。查询已经在mysql中直接工作了,没有问题!

 SELECT * FROM `product` ORDER BY (

 CASE WHEN name LIKE '%برج خنک کن%' THEN 1 WHEN name LIKE '%برج خنک
 کننده%' THEN 2 ELSE 3 END )

但是zend中的代码显示了这个错误:
“order子句”中的异常“Zend_Db_Statement_exception”,消息为“SQLSTATE[42S22]:未找到列:1054 Unknown Column”(当名称类似于“%时为大小写,”%
这是我的密码
$select = $products->select()->order(" (case
            when name LIKE '%برج خنک کن%' then 1
            when name LIKE '%برج خنک کننده%'  then 2
            else 3
        end)");

最佳答案

我认为这应该管用:

$products->select()->order(
    array(new \Zend\Db\Sql\Expression("Your case"))
);

关于php - zend未按复杂顺序找到该列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28234297/

10-13 09:10