按字符串的字母顺序区分大小写

问题描述 投票:0回答:1

在我的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

您是否有任何解决此问题的想法?

php sql oracle symfony doctrine
1个回答
0
投票

不区分大小写。在第一个查询中,您正在列出

  • Bcd
  • abc
  • xyz

其中B低于a

在第二个

  • BCD
  • ABC
  • XYZ

排序正确的

  • ABC
  • BCD
  • XYZ
© www.soinside.com 2019 - 2024. All rights reserved.