查询:
select * from table_name ORDER BY name like 'C%' DESC;
此查询在 MySql 中运行良好,但我无法使用 Zend DB 构建查询。 执行时出现错误。
PHP 数据库代码:
$result = $this->getDefaultAdapter()
->选择()
->from($this->_name,array('*'))
->order("name like 'C%' DESC")
->查询()
->获取全部();
错误:
Column not found: 1054 Unknown column 'name like 'C%'' in 'order clause'
提前致谢
最佳答案
Zend_Db_Select 尝试将字符串定界为列名,但如果您传递类型为 Zend_Db_Expr 的对象而不是字符串,它会跳过此操作:
->order(new Zend_Db_Expr("name like 'C%' DESC"))->
还有一个未记录的快捷方式:列分隔函数假定任何包含括号的字符串很可能是一个表达式,而不仅仅是一个列名。所以下面的也行:
->order( "(name like 'C%' DESC)" )->
关于php - Zend DB 中带有 'like' 子句的 Order 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7117890/