0

我有一个 SELECT 语句,例如SELECT * FROM table where id=? and key IN (?,?..?). 对于 INSERT,UPDATE,我们有这个 batchWithParams,我该如何为 SELECT 执行此操作。我正在为 MySQL 数据库使用 JDBC 驱动程序。数组列表是这样的,

 BATCH [[100,4,11], [150,4,12]]
4

1 回答 1

0

为什么不直接将 ArrayList 转换为 String?像这样:

 suspend fun getUsersByEmail(emails: Iterable<String>): List<User> {
    return mysqlPool.getConnectionAwait().use { conn ->
        conn.query(
            """
                SELECT * FROM users
                WHERE email IN (${emails.joinToString(separator = ", ") { "'$it'" }})
            """
        ).executeAwait().map { row ->
            User(
                row.getLong("id"),
                row.getString("email")
            )
        }
    }
}
于 2021-05-13T00:10:44.307 回答