duda consulta sql

tricornio

Buenas.

Actualmente tengo que hacer unas inserciones en la BD. A lo mejor tengo que introducir 15 veces un mismo dato.
Lo que estoy haciendo es crear un for donde se ejecute 15 veces la consulta, pero me resulta bastante cutre esta solución.

Así que venía a preguntar si para las inserciones es posible usar el LIMIT al igual que en los deletes. Y en el caso que sea posible, como sería su formato de uso. O si no se puede, si existe algo similar.

Un saludo.

//algo asi tengo ahora
for( $i=0; $i<$vueltas; $i++ ){
                //metodo que inserta en la BD
                $this->points->anadir_participacion( array(
                    'id_user'    => $this->user_id,
                    'id_cocina' => $id_cocina,
                ) );
}
RaymaN

No puedes usar LIMIT en un INSERT. Algo no haces bien si tienes que insertar 15 veces el mismo dato.

3 1 respuesta
tricornio

#2 Que contundente, ni me preguntas que estoy haciendo ni nada, sino directamente que algo hago mal si estoy haciendo eso jajaja.

Pero bueno, pienso que tienes razón. Eso que subo a la BD son puntos y claro, algunos usuarios tienen una bonificación de puntos, por lo tanto en lugar de ganar un punto en cada participación, ganan 8 por poner un ejemplo. De ahí que haga un bucle de 8 inserciones.

Seguiré tu consejo y añadiré un campo ‘cantidad’ a la tabla y ahí meteré la cantidad. Así hago una única inserción y luego si quiero obtenerlas simplemente sumo ese campo en lugar de contar todas las inserciones.

Gracias por la ayuda, un saludo.

2 respuestas
RaymaN

#3 he sido lo suficientemente simple como para que te hayas dado cuenta del problema xD

Además, deberías agrupar todos los datos a introducir en un array para insertarlos de una sola vez tras el bucle.

15 días después
pdj

#3 Tal como dices, añade un campo cantidad y haz el insert, cuando los tengas que recuperar, puedes hacer algo tan simple como:

SELECT SUM(cantidad) as totalPoints FROM TU_TABLA WHERE id_usuario = #{userId} and id_cocina = #{cocinaId} 

y a volar

1

Usuarios habituales

  • pdj
  • RaymaN
  • tricornio