2012-10-06 60 views
6

我的數據庫表列中的值獲得MySQL中的列的最大價值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,但它返回的值是999而不是1000.如何獲得1000作爲最大值。誰能幫我..???

+0

是group_id一個varchar列嗎?如果是這樣,你應該將其轉換爲整數,然後運行MAX()。 – Vikdor

+0

yes group_is is varchar – Baskar

回答

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 Demo

+0

這將如何解決OP的問題?我認爲GROUP BY在他的情況下是多餘的,如果列是整數,它將返回1000,這似乎不是這種情況。 – Vikdor

+0

雅它的工作原理,但根據我的要求修剪我改變了我的表。可以用你的電子郵件爲上述問題? – Baskar

+0

@Baskar你怎麼改變桌子? –

1

您需要添加GROUP BY條款。

select max(group_id) from prospect_group where tenant_id=2 group by tenant_ id 
+0

雅它的工作原理,但根據我的要求修剪我改變了我的表格data.can你elp爲上述問題? – Baskar