我在字符串类型的实体中有一个字段,我需要在dql中将结果排序为整数
我在字符串类型的实体中有一个字段,我需要按该字段排序但将结果转换为整数的结果。
像这样(MySQL查询):
SELECT * FROM table1 ORDER BY CONVERT(code, UNSIGNED);
如何在学说中创建此查询?
更新
由于这篇文章,我设法使用了强制转换功能:
CASTING attributes for Ordering on a Doctrine2 DQL Query
我创建了自己的函数来实现此功能。
官方学说:
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#adding-your-own-functions-to-the-dql-language
最佳答案
AFAIK您不能直接做。原则不支持本地mysql功能(转换,日,月等)。
理念和原则是要能够与许多不同的数据库进行对话-这就是为什么没有任何本机功能的原因。
但
您可以自己完成。
几年前,我需要在学说中使用数据功能(日/月等),因此我设法将其添加到学说中。
看这里 :
https://github.com/poznet/SF2Core/blob/master/src/Poznet/CoreBundle/Dql/Year.php
要么
https://github.com/beberlei/DoctrineExtensions
也看到过conver的解决方案,但从未测试过,请看这里
https://gist.github.com/liverbool/6345800
关于php - 如何在Doctrine中使用CONVERT()函数MySQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48537424/