首页 > 解决方案 > 按字符串排序的原则区分大小写

问题描述

在我的 Symfony 应用程序中,当我(使用查询构建器或其他任何东西)订购时,顺序是错误的。

如果我用我的 sql 客户端发出请求,结果是正确的。

例子:

    $rsm = new ResultSetMapping();
    $rsm->addScalarResult('NAME', 'NAME');

    //Without uppercase
    $sql = "SELECT * FROM Category ORDER BY NAME ASC";
    $query = $em->createNativeQuery($sql, $rsm);
    $categories = $query->getResult();
    dump($categories);
    /*
     * Return:
     *  - Bcd
     *  - abc
     *  - xyz
     */

    //With uppercase
    $sql = "SELECT * FROM Category ORDER BY UPPER(NAME) ASC";
    $query = $em->createNativeQuery($sql, $rsm);
    $categories = $query->getResult();
    dump($categories);
    /*
     * Return:
     *  - abc
     *  - Bcd
     *  - xyz
     */

使用命令行的 SQL 查询:

SQL> select NAME from Category order by NAME ASC;

NAME
-------------------------------------------------------------------
abc
Bcd
xyz

你有什么想法来解决这个问题吗?

标签: phpsqloraclesymfonydoctrine

解决方案


推荐阅读