2012-01-19 39 views
4

嗨,我正在一個Java項目,我必須檢索最後一個客戶添加的ID,即Max(c_id)。但在我的數據庫c_id是文本(varchar)格式,所以我如何檢索最大?找到最大的varchar

Connection conn; 
    Statement st; 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    conn=DriverManager.getConnection("jdbc:odbc:rrr"); 
    st=conn.createStatement(); 

String query[] ={"SELECT Max(cid) FROM client"}; 
    for(String q : query){ 
    ResultSet rs = st.executeQuery(q);   
    while (rs.next()) { 
     String name = rs.getString("cid"); 
     Text1.setText(name); 
+3

哪個數據庫(MySQL,Oracle,MSSQL等)? –

+0

我認爲你的c_id數字,但在varchar? – Kushan

+0

你確定last == max id嗎? –

回答

0

檢查以下各項:

select * from client order by cid desc limit 1,1;

+0

請註冊 – vijikumar

3

select max(convert(integer, c_id))select max(cast(c_id as integer))應該工作

+0

不工作...我正在使用mysql ... –

+0

@Fahim mysql似乎有一個稍微不同的語法,快速搜索出現了http ://dev.mysql.com/doc/refman/5.0/en/charset-convert.html這可能是有用的 –

+0

上面的代碼工作的地方呢?請更新您的答案在哪裏工作... –

1

檢查這一點,

SELECT max(convert(c_id, signed)) FROM client 

在mysql中嘗試這個,

SELECT max(cast(c_id AS signed)) FROM client 

你能用CINT功能檢查施放女士訪問

0

使用此查詢:

select max(convert(cid,DECIMAL))from client;

+0

如果你使用mysql –

+0

感謝您的幫助。用count(*)語句和它工作 –

3

使用

select max(c_id::integer) from tbluser ; 

如果您使用PostgreSQL數據庫

0

請使用以下查詢。

select * from client order by c_id desc limit 1,1;

+0

沒有它的不工作.. –

0

MySQL的

SELECT Max(cast(cid as signed)) FROM client 

甲骨文

SELECT Max(to_number(cid)) FROM client 

MSSQL

SELECT Max(CONVERT(int, cid)) FROM client 
+0

MySQL給予第一個值輸入... –

+0

即時通訊使用ms訪問 –