Tengo una tabla cuya estructura y datos son los siguientes:
La tabla tiene un campo de incremento automático llamado "ID". Tiene otro campo llamado ‘q_r_id’ que también almacena id, pero aquí se puede repetir (por ejemplo, id-12 se puede repetir en más de 1 fila pero con un máximo de 5 filas).
Quiero seleccionar un número fijo de registros deesta tabla ALEATORIAMENTE pero asegurando que desde el campo ‘q_r_id’ si, por ejemplo, se selecciona id-12, todas las filas (es decir, todas las cinco filas de id-12 deben incluirse en el resultado aleatorio).
Estoy usando la siguiente consulta pero no obtengo el resultado deseado:
SELECT * FROM tblreasoningip_r WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
group BY q_r_id LIMIT 0,30
Cualquier ayuda sería muy apreciada.
Respuestas
1 para la respuesta № 1Prueba union
SELECT * FROM
(
SELECT * FROM tblreasoningip_r
WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
UNION
SELECT * FROM tblreasoningip_r WHERE q_r_id = 12
)
GROUP BY id