0

たとえば、英数字ID(または数値シリーズ)を自動インクリメントしようとすると問題が発生します

Mysqlの「サンプル」テーブルの「RefNo」列(Varchar型)

AB7 AB10 AB9 AB8

上記の4つのエントリがあり、最大(または最大値)を取得したいと思います。

このために、私はクエリを= SELECT MAX(RefNo)FROMサンプルとして試しました。しかし、これは間違った「AB9」として結果を返し、結果として「AB10」を返すことになっています。

Mysqlでこれを取得するために、クエリを= SELECT MAX(CONVERT(SUBSTRING_INDEX(RefNo、'B'、-1)、UNSIGNED INTEGER))として変更しました。ここで、RefNoは'AB%'のようになります。

この作業はmysqlでは問題ありませんが、Hibernate(hql)クエリではサポートされていません。

シーンリオをご理解いただければ幸いです。問題の解決にご協力ください。

4

1 に答える 1

2

文字列の数値部分を使用substringcastて取得し、それを数値にキャストできるはずです。そのようなもの(テストされていません):

select max(cast(substring(sample.refNo, 3) as INTEGER)) from Sample sample ...
于 2012-09-25T12:57:29.137 に答える