根据使用问题推测不区分大小写的顺序

时间:2011-03-16 11:56:17

标签: sql-order-by criteria propel case-insensitive

我一直在四处寻找并且找不到任何有用的东西。

我的问题是;我无法设置不区分大小写的标准ORDER(A a b B D d)。因为当我尝试从数据库中获取记录时,由于ascii问题(A B C a b c),它的排序不正确

我想设置这样的ORDER标准;

Criterias::setCriterias(Array('ORDER' => 'UPPER(name)'));

但推进并不允许我使用UPPER设置标准 所以我必须这样设置它;

Criterias::setCriterias(Array('ORDER' => 'name'));

我找到了可能有用的东西,这个功能正在做我想要的事情;

setIgnoreCase(true)

此功能即将出现一个新问题。如果我在没有WHERE的情况下设置ORDER标准,它将像魅力一样工作。但如果我将'WHERE'和'ORDER'设置在一起,推进会给我错误。

  

致命错误:未捕获的异常   'PropelException',消息'Unable   执行SELECT语句[]   [wrapped:无法获取TableMap   undefined table:]'in   /usr/local/share/pear/propel/query/ModelCriteria.php:1153   堆栈跟踪:#0   /usr/local/share/pear/propel/query/ModelCriteria.php(1019):   ModelCriteria-> getSelectStatement(NULL)

感谢。

1 个答案:

答案 0 :(得分:1)

这在Propel 1.6.x中已修复。我推了几个测试证明:https://github.com/propelorm/Propel/commit/3fc74ccffb05931ec3187b0dcff77dce732ef325