2015-12-21 21 views
0

在數據庫mapRule列包含如何在'pie'或'vertical bar'之間獲取數據|在數據庫中使用java?

  1. IFA 211974009 |腳尖深部分厚度燒傷(無序)|
  2. IFA 28571002 |腳趾二度燒傷(失常)|
  3. IFA 211968009 |足部表面部分厚度燒傷(無序)|

需要的輸出在|符號餡餅或垂直條趾(S)(障礙)趾(障礙)的

  • 二度燒傷腳(障礙)的
  • 淺表Ⅱ度燒傷
    1. 深Ⅱ度燒傷

      如何得到這個?我從MySQL的獲取數據我的代碼是

      CODE

      <% 
          pstm = Con.prepareStatement(selectsql); 
          pstm.setString(1, snomedid); 
          resultSet = pstm.executeQuery(); 
          while (resultSet.next()) { %> 
           <p><%=resultSet.getString("mapRule")%></p> 
          <% } %> 
      

      如何在這種情況下驗證?例如,

    +0

    這看起來像一個非常糟糕的設計數據庫。 –

    +0

    是的!如何刪除重複在這種情況下@Mark Rotteveel –

    回答

    1

    使用String.split。它使用正則表達式作爲分隔符將您的字符串拆分爲小塊數組。

    <% 
    pstm = Con.prepareStatement(selectsql); 
    pstm.setString(1, snomedid); 
    resultSet = pstm.executeQuery(); 
    while (resultSet.next()) { 
        String[] chunks = resultSet.getString("mapRule").split("\\|"); 
        if(chunks.length > 1) { //Don't forget to check that string after first "|" even exists! 
    %> 
         <p><%=chunks[1]%></p> 
        <% } 
    } %> 
    

    而且,它可能是一個好主意,以檢查是否resultSet.getString("mapRule") == null如果你輸入的數據是可能的。

    P.S.它被稱爲pipe字符,而不是pie

    +0

    非常感謝,它的工作正常,我認爲現在它不會需要,我會糾正它下次sry的錯誤@Timekiller –

    +0

    如何避免在這種情況下重複行。我正在獲取重複行 –

    +0

    更改您的sql查詢,使用'distinct'作爲初學者。如果仍有重複,則可能需要在SQL中直接在'|'之間切斷字符串 - 可以使用正則表達式或'instr'和'substr'。你沒有提到你使用的DBMS,所以很難說什麼會更好用。查看如何在SQL中使用分隔符分割字符串,StackOverflow中有大量相關答案。 – Timekiller

    相關問題