我现在有这个解决方案:
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(*))
没有返回 id 且 is_valid = 1
。
那么如何使用where子句(where is_valid = 1)从MySQL中快速选择随机条目呢?
最佳答案
尝试使用 ORDER BY 子句。试试这个:
SELECT COUNT(user_id) FROM bases WHERE user_id = " + userId + " AND is_valid = 1 ORDER BY RAND() LIMIT 1
这将从表中随机返回一行。
关于mysql - 使用 where 子句从 MySQL 中选择随机条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073176/