6

私のDBテーブルの列の値は

tenant_ id  group_id
2           2-100
2           2-111
1           1-222
1           1-888
2           2-999 
2           2-1000

クエリ:

select max(group_id) from prospect_group where tenant_id=2

上記のクエリを使用してtenant_id=2の最大値を取得しましたが、値が1000ではなく999として返されます。最大値として1000を取得する方法。??? 誰かが私を助けることができますか..???

4

2 に答える 2

5

あなたはGROUP BY条項を持っている必要があります

SELECT tenant_ID, MAX(CAST(group_ID AS SIGNED))
FROM tableName
-- WHERE  tenant_id=2 -- uncomment this if you select only for specific tenant_ID
GROUP BY tenant_ID

空の文字に置き換えて試してください。

SELECT tenant_ID, 
       MAX(CAST(REPLACE(group_ID, CONCAT(tenant_ID, '-'), '')  AS SIGNED)) maxGID
FROM tableName
-- WHERE  tenant_id=2 -- uncomment this if you select only for specific tenant_ID
GROUP BY tenant_ID

SQLFiddleデモ

于 2012-10-06T06:01:14.600 に答える
1

GROUP BY句を追加する必要があります。

select max(group_id) from prospect_group where tenant_id=2 group by tenant_ id 
于 2012-10-06T06:01:39.020 に答える