У меня есть это решение сейчас:
rs = lState.executeQuery("SELECT FLOOR(RAND() * COUNT(*))
FROM bases
WHERE user_id = " + userId + " AND is_valid = 1");
rs.next();
count = rs.getInt(1);
rs = lState.executeQuery("SELECT id, server, server_port, server_ssl,
server_starttls, server_auth, email, password, auth_wholemail
FROM bases LIMIT " + count + ", 1");
Но это не работает, потому что FLOOR(RAND() * COUNT(*))
не возвращает идентификатор с is_valid = 1
.
Итак, как быстро выбрать случайную запись из MySQL с предложением где (где is_valid = 1)?