鍍金池/ 問答/數(shù)據(jù)庫/ mysql in函數(shù)拼接條件問題

mysql in函數(shù)拼接條件問題

String[] orderIds = query.getOrderId().split(",");

    StringBuffer buffer = new StringBuffer();
    for (String orderId : orderIds) {
        buffer.append(orderId).append(",");
    }
    buffer.deleteCharAt(buffer.length() - 1);
    String sql = "select order_id,pay_status from order_info where order_id in ("+buffer.toString()+")";
    List<OrderInfoTo> list = jdbcService.queryEntityList(OrderInfoTo.class,sql);
    

拋出異常:
PreparedStatementCallback; bad SQL grammar [select order_id,pay_status from order_info where order_id in (170606100349,170606100376,170606100396)]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'ys170606100349' in 'where clause'

這種方法一直在用,都沒有拋過異常,突然今天我在另一個需求做的時候使用這種方法查詢,突然拋異常了,怎么解決,原因是什么

回答
編輯回答
心癌

Unknown column 'ys170606100349' in 'where clause' 他都說不識別的ys170606100349是不是ys這個的緣故
你打印sql看看能不能運行

2017年4月8日 15:34