elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Usar varias funciones string en una consulta.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Usar varias funciones string en una consulta.  (Leído 2,397 veces)
Hekaly

Desconectado Desconectado

Mensajes: 85



Ver Perfil WWW
Usar varias funciones string en una consulta.
« en: 9 Febrero 2013, 11:48 am »

Hola a todos.

Estoy trabajando en un sistema de votos en una web de videojuegos y mi objetivo es poner en el perfil de cada usuario registrado los 10 ultimos juegos votados.

Tengo dos tablas en los que almaceno contenido, pero la que me interesa es la siguiente, muestro un ejemplo de como esta.



Esta es la forma simple de la tabla, en ella almaceno en id_juego el numero de ficha de un juego y en usuarios_votos por cada usuario el id usuario seguido del tiempo unix, cada usuario se separa por ; los otros dos campos son el nombre del juego y la caratula.

La consulta a esta tabla simple es la siguiente.

Código
  1. SELECT id_juego,usuarios_votos,nombreJuego,caratula FROM ratings_usuarios, juegos WHERE juegos.idJuego = ratings_usuarios.id_juego AND ratings_usuarios.usuarios_votos REGEXP "2-" ORDER BY usuarios_votos;

Donde "2" es una variable que generare en php.

Bien mi objetivo es sacar los 10 ultimos, eso lo gago con LIMIT 10, y ordenadarlos por tiempo unix seria ORDER BY campo DESC.

El problema viene que en los registros a lo mejor no empieza por el nombre de usuario como en el registro 37 (56-1360403038;2-1360403176;)

Mi idea es sacar el id del juego y unicamente "user-tiempounix" osea el registro 37 seria (2-1360403176;)

Para eso nesesito saber donde empieza en la cadena el usuario-tiempounix y despues extraer solo esa parte.

Por separado se hacerlo.

Para saber en que numero de letra empieza lo hago asi.

Código
  1. SELECT id_juego,LOCATE( '2-', ratings_usuarios.usuarios_votos ) , nombreJuego,caratula FROM ratings_usuarios, juegos WHERE juegos.idJuego=ratings_usuarios.id_juego AND ratings_usuarios.usuarios_votos REGEXP "2-" ORDER BY usuarios_votos;

Siguiente el ejemplo anterior todos empiezan en posicion 1 menos la ultima que es la posicion 15

Por otra parte para extraer el tiempo unix seguido de "usuario-" lo hago asi.

Código
  1. SELECT id_juego,SUBSTRING_INDEX(usuarios_votos, ';', 1),nombreJuego,caratula FROM ratings_usuarios,juegos WHERE juegos.idJuego=ratings_usuarios.id_juego AND ratings_usuarios.usuarios_votos REGEXP "2-" ORDER BY usuarios_votos;
  2.  

Pero en el registro sale "56-1360403038" ya que coge solo el numero 1 (SUBSTRING_INDEX(usuarios_votos, ';', 1))

Mi pregunta es, como puedo unir todo esto es una unica consulta???, deberia hacer una funcion o se puede hacer en un select???, estaria muy agradecido si me pudierais ayudar, muchas gracias y un saludo.


En línea

Carloswaldo
Traductor
Moderador Global
***
Desconectado Desconectado

Mensajes: 4.764


Nos reservamos el derecho de ban.


Ver Perfil WWW
Re: Usar varias funciones string en una consulta.
« Respuesta #1 en: 10 Febrero 2013, 15:56 pm »

En mi opinión te estás complicando mucho sin razón cuando lo que deberías hacer es tener una tabla aparte para votos que relacione el id del usuario con el id del juego así te evitarías tener que hacer operaciones innecesarias con strings y las consultas serían más fáciles de hacer.


En línea





Dominio en venta: https://forojapones.com/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] String de varias lines
.NET (C#, VB.NET, ASP)
sapito169 4 4,404 Último mensaje 27 Enero 2009, 00:32 am
por sapito169
Problema con string de consulta a bbdd
PHP
fede_cp 7 3,280 Último mensaje 9 Diciembre 2009, 04:44 am
por fede_cp
(Solucionado) separar un string en varias cadenas (Split)
.NET (C#, VB.NET, ASP)
Eleкtro 5 4,832 Último mensaje 22 Noviembre 2012, 13:20 pm
por Novlucker
[SRC-C99] Listas doblemente enlazadas (varias funciones).
Programación C/C++
BlackZeroX 1 3,021 Último mensaje 15 Enero 2013, 07:18 am
por BlackZeroX
Problema con un programa en C (string.h y funciones) « 1 2 3 »
Programación C/C++
Kayburn 22 7,663 Último mensaje 13 Marzo 2014, 18:51 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines