gpt4 book ai didi

grails - Grails域比较器

转载 作者:行者123 更新时间:2023-12-02 14:59:45 25 4
gpt4 key购买 nike

我有一个名为versionNumber的String字段,其中包含具有此String样式的版本号:integer.integer.integer p.e. 4.4.4
我有一个HQL查询,用于检索此字段的最大值:
Class.executeQuery('select max(versionNumber) from Class')
通过该查询,我没有得到正确的值,我得到了4.4.1 > 4.21.3
如何为该列创建比较器?

最佳答案

关键是将versionNumber拆分为 token ,并对这些 token 进行排序:

Class.executeQuery(‘SELECT versionNumber FROM Class
ORDER BY
CAST(SUBSTRING(versionNumber, 1, LOCATE(‘.’, versionNumber) - 1) AS INTEGER),
CAST(SUBSTRING(versionNumber, LOCATE(‘.’, versionNumber) + 1, locate('.', versionNumber, locate('.', versionNumber) + 1) - locate('.', versionNumber) - 1) AS INTEGER
CAST(SUBSTRING(versionNumber, LOCATE('.', versionNumber, LOCATE(‘.’, versionNumber) + 1) + 1, LOCATE('.', versionNumber, LOCATE('.', versionNumber, LOCATE('.', versionNumber) + 1) + 1) - LOCATE('.', versionNumber, LOCATE('.', versionNumber) + 1) - 1) AS INTEGER)
‘), [max: 1])

它看起来有点丑陋,但是以最佳方式工作。

关于grails - Grails域比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46403914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com