按字母顺序排序对保存为Blob的数据不起作用?

时间:2018-12-04 22:40:36

标签: java mysql sql jsp sql-order-by

我正在从DRIVERCAR表中进行查询,并尝试按name的字母顺序(ASCa-z)对结果列表进行排序。但是,我的结果表没有反映我的sql语句,因为它根本不是按字母顺序排序的:(Joe, Lucas, James, Ginny应该显示为Ginny, James, Joe, Lucas)。

在使用name数据类型将它们存储在我的RSA Encryption表中之前,我已经使用DRIVER加密了这些BLOB值。会影响为什么我的查询未按我想要的方式排序吗?

下面的详细信息。

我的表格

DRIVER (driverID, username, name,....)

CAR (license, brand,....)

我的结果表格打印输出:

Driver ID | username | Name  | License Plate | Brand
----------------------------------------------------
004       | joe867   | Joe   | M8M UZX       | Toyota
001       | luke99   | Lucas | A99 PX3       | Hyundai
003       | james3   | James | YPL 393       | Ford
002       | ginny23  | Ginny | HP2 111       | Subaru

我的selectDriver() 查询方法(为简便起见,省略了方法名称括号,try-catch等内容)。

String sql = "SELECT driverID, username, name, license, brand
FROM driver, car
WHERE driver.driverID = car.driverID_FK
ORDER BY name ;"

PreparedStatement pst = connect.prepareStatement(sql);
rs = pst.executeQuery();

List<Driver> list = new ArrayList<Driver>();

while (rs.next()){

   Driver driver = new Driver(); //My Driver bean class
   driver.setDriverID(rs.getInt(1));
   driver.setUsername(rs.getString(2));
   ...
   driver.setBrand(rs.getString(5));
   list.add(driver);
}

rs.close();
connect.close();
return list;

我的带有JSTL结果表的 JSP

<table>
   <tr>
     <th>Driver ID</th>
     <th>Username</th>
     <th>Name</th>
     <th>License Plate</th>
     <th>Brand</th>
   </tr>

   <c:forEach var="driver" items="${driverArray}">
   <tr>
      <td><c:out value="${driver.driverID }"/></td>
      <td><c:out value="${driver.username }"/></td>
      <td><c:out value="${driver.name }"/></td>
      <td><c:out value="${driver.license }"/></td>
      <td><c:out value="${driver.brand }"/></td>
        </tr>
    </c:forEach>    
</table>

1 个答案:

答案 0 :(得分:0)

只需稍作更改。像

这样写查询
String sql = "SELECT driverID, username, name, license, brand
FROM driver, car
WHERE driver.driverID = car.driverID_FK
ORDER BY driver.name ;"

希望它能工作!