Hola a todos les queria preguntar como hacer que la sentencia limit me muestre la mitad de los registros, en una sentencia mysql (sin usar calculos en php) :huh:
Lo que puedes hacer son dos consultas MySQL, una que te devuelva el numero de registros de la tabla:
SELECT COUNT(*) FROM tabla
Y luego hacer el limit:
SELECT * FROM tabla LIMIT count/2
Gracias amigo , peor no habra forma de hacerlo en una sola sentencia tengo que entendido que en SQL si existe esa opcion
Prueba a ver con una sub consulta:
SELECT * FROM tabla LIMIT (SELECT COUNT(*) FROM tabla)/2
Si funciona mi duda sería... ¿Y si el resto no es 0?.... ¿Explota el servidor? ¿Matrix desaparece?
Lo intente amigo, no funciono
que tal si intentamos buscarle otra aproximación al problema...
¿para qué necesitas que sea la mitad, por que no un numero fijo?
Citarque tal si intentamos buscarle otra aproximación al problema...
¿para qué necesitas que sea la mitad, por que no un numero fijo?
Gracias por tu interes en realidad no solo es la mitad, sino la tercera parte, cuarta parte... es decir que sea personalisable de acuerdo a una variable.
Es un examen tipo repasoPor ejemplo tengo x preguntas de varios cursos
(el numero de preguntas aumenta progresivamente)
En el primer repaso se toma el 100% de la preguntasEn el segundo repaso se toma el 75% de la preguntas En el tercero repaso se toma el 50% de la preguntasTodas la preguntas son extraidas aleatoriamente.
Es decir necesito extraer un pocercentaje de las preguntas los mas aleatoriamente posible
cuando haces
SELECT * FROM tabla LIMIT (SELECT COUNT(*) FROM tabla)/2
te da algun error? lo prueba y da bien (redondea hacia abajo)
derepente estoy haciendo algo mal
puse :
SELECT * FROM preguntas LIMIT (SELECT COUNT(*) FROM preguntas)/2
usando el sql de phpmyadmin de xampp
y me arroja esto:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(SELECT COUNT(*) FROM preguntas)/2' at line 1
rayos tienes razon... buscando conseguí cosas como esta
SET @medio = (SELECT COUNT(*) FROM algo)/2;
PREPARE STMT FROM 'SELECT * FROM algo LIMIT ?';
EXECUTE STMT USING @medio;
CitarSET @medio = (SELECT COUNT(*) FROM algo)/2;
PREPARE STMT FROM 'SELECT * FROM algo LIMIT ?';
EXECUTE STMT USING @medio;
Genial, pero en una sola una consulta?????
Sera porque uso esto:
Citarmysql_query() :múltiples consultas no están soportadas
Seria interesante una sola consulta
bastante busqué el internet y no eres el unico con esa duda... todas las soluciones son multilinea... tu la pediste en mysql XD no que funcionara con mysql_query
mysql_query soporta una UNICA sentencia... para hacer multi sentencia vas a tener que usar mysqli
aqui (http://www.w3schools.com/php/func_mysqli_multi_query.asp) un ejemplo simple de como usarlo... básicamente le pones i a todos los mysql y listo
Cita de: engel lex en 29 Agosto 2014, 17:09 PM
bastante busqué el internet y no eres el unico con esa duda... todas las soluciones son multilinea... tu la pediste en mysql XD no que funcionara con mysql_query
mysql_query soporta una UNICA sentencia... para hacer multi sentencia vas a tener que usar mysqli
aqui (http://www.w3schools.com/php/func_mysqli_multi_query.asp) un ejemplo simple de como usarlo... básicamente le pones i a todos los mysql y listo
Quien coño usa mysqly_query???? Hace años que está desaconsejado... hay
Notices por todas partes incluso en la página oficial de PHP/MySQL...
Yo cuando me cambié, lo hice directamente a MySQLi POO, que es similar pero con objetos y queda más ordenadito todo :-)
Cita de: dimitrix en 30 Agosto 2014, 17:30 PM
Quien coño usa mysqly_query???? Hace años que está desaconsejado... hay Notices por todas partes incluso en la página oficial de PHP/MySQL...
Yo cuando me cambié, lo hice directamente a MySQLi POO, que es similar pero con objetos y queda más ordenadito todo :-)
i feel you bro.... pero los tutoriales y casi toda la info está en mysql y no en mysqli o pdo
Hacer una consulta, el total dividir por 2 , después verificar sí tiene mas de 1 registro la tabla, si tiene mas de 1, ejecutas para así lograr división. Ahora , haz pensando en que los números impares dará decimal? :), para eso debes dividir por 3 en caso de impares , la forma que de exacto.
Enviado desde mi XT1032 mediante Tapatalk
Cita de: JSX3 en 31 Agosto 2014, 15:27 PM
Hacer una consulta, el total dividir por 2 , después verificar sí tiene mas de 1 registro la tabla, si tiene mas de 1, ejecutas para así lograr división. Ahora , haz pensando en que los números impares dará decimal? :), para eso debes dividir por 3 en caso de impares , la forma que de exacto.
lee el tema principal :s
Cita de: Lupin en 27 Agosto 2014, 19:34 PM
Hola a todos les queria preguntar como hacer que la sentencia limit me muestre la mitad de los registros, en una sentencia mysql (sin usar calculos en php) :huh:
Cita de: engel lex en 31 Agosto 2014, 19:14 PM
lee el tema principal :s
Entiendo que no dese ocupar calculos en PHP, ¿pero si tiene "n" registros? , siendo "n" impar dando resultado como decimal, por eso sugerí algo más amplio al momento de realizar y ver en caso "a", "b" o "c".
no importa, mysql toma los valores resultado truncados
store procedure :silbar: