按使用问题推进不区分大小写的顺序

发布于 2024-10-22 12:51:11 字数 869 浏览 2 评论 0原文

我已经四处寻找了好几天,找不到任何有用的东西。

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

我想像这样设置我的 ORDER 标准;

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

但 propel 不允许我在设置条件时使用 UPPER。
所以我必须这样设置;

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

我发现了一些可能有帮助的东西,这个函数正在做我想要的事情;

setIgnoreCase(true)

这个函数带来了一个新问题。如果我在没有 WHERE 的情况下设置 ORDER 标准,它将发挥作用。但如果我将“WHERE”和“ORDER”设置在一起,propel 会给我错误。

致命错误:未捕获的异常 “PropelException”,消息“无法” 执行 SELECT 语句 [] [包装:无法获取 TableMap 未定义的表:]' 中 /usr/local/share/pear/propel/query/ModelCriteria.php:1153 堆栈跟踪:#0 /usr/local/share/pear/propel/query/ModelCriteria.php(1019): ModelCriteria->getSelectStatement(NULL)

谢谢。

I have been looking around for days and couldnt find anything helpfull.

my problem is; I couldn't set criteria case-insensitive ORDER (A a b B D d). Because when I try to fetch my records from DB, its not ordering properly since ascii problems (A B C a b c )

I want to set my ORDER criteria like this;

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

But propel doesnt let me to use UPPER in setting criterias.
So I have to set it like this;

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

I found something that may help, this function is doing what i want;

setIgnoreCase(true)

A new problem is coming with this function. If I set ORDER criteria without WHERE, it will working like a charm. But if I set 'WHERE' and 'ORDER' together, propel will giving me error.

Fatal error: Uncaught exception
'PropelException' with message 'Unable
to execute SELECT statement []
[wrapped: Cannot fetch TableMap for
undefined table: ]' in
/usr/local/share/pear/propel/query/ModelCriteria.php:1153
Stack trace: #0
/usr/local/share/pear/propel/query/ModelCriteria.php(1019):
ModelCriteria->getSelectStatement(NULL)

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

日久见人心 2024-10-29 12:51:11

这已在 Propel 1.6.x 中修复。我进行了一些测试来证明这一点: https://github.com/propelorm/Propel/commit/ 3fc74ccffb05931ec3187b0dcff77dce732ef325

This is fixed in Propel 1.6.x. I pushed a few tests to prove that: https://github.com/propelorm/Propel/commit/3fc74ccffb05931ec3187b0dcff77dce732ef325

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文