Cla*_*ark 1 mysql random where
我现在有这个解决方案:
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");
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为FLOOR(RAND() * COUNT(*))不是返回id is_valid = 1.那么如何从MySQL whith where子句(其中is_valid = 1)快速选择随机条目?
尝试使用ORDER BY子句.试试这个:
SELECT COUNT(user_id) FROM bases WHERE user_id = " + userId + " AND is_valid = 1 ORDER BY RAND() LIMIT 1
Run Code Online (Sandbox Code Playgroud)
这将从表中返回一个随机行.