[Ayuda] Mysql R6
#1

hola samp, estoy utilizando mysql r6(de BlueG),y quisiera saber como puedo obtener la id mas pequeсa que no se este utilizando/creada, lo explicare grбficamente.




----------------------------- Tabla.Jugadores
Id | Nombre | Etc....
0 | User... |
1 | User... |
3 | User... |
5 | User... |
6 | User... |
9 | User... |
------------------------------
Lo que yo necesito es que con una consulta me detecte la id 2 que en el grбfico no aparece...si alguien tiene alguna guнa o tutorial que me ayude se lo agradecerнa mucho.
Espero que alguien pueda ayudarme ,Gracias.
Reply
#2

nadie?
Reply
#3

їLo que quieres es que la consulta te devuelva el valor ID pero salteбndose en 2 en 2?

Osea, їQuй es lo que quieres lograr con esto?
Reply
#4

Quote:
Originally Posted by MillerUTL
Посмотреть сообщение
їLo que quieres es que la consulta te devuelva el valor ID pero salteбndose en 2 en 2?

Osea, їQuй es lo que quieres lograr con esto?
mira si tu en una table tienes las ids: 0,1,4,6,7, etc... esas ids estбn creadas por lo tanto se estбn utilizando

yo lo que quiero es que al hacer la consulta me diga que la id mas pequeсa y disponible(sin usar) es"2"

en caso de que fuese 0,1,2,4,6,7 etc...

me tendrнa que devolver 3, me entiendes?
Reply
#5

Quote:

mira si tu en una table tienes las ids: 0,1,4,6,7, etc... esas ids estбn creadas por lo tanto se estбn utilizando

yo lo que quiero es que al hacer la consulta me diga que la id mas pequeсa y disponible(sin usar) es"2"

en caso de que fuese 0,1,2,4,6,7 etc...

me tendrнa que devolver 3, me entiendes?

Por lo que conozco no existe dicha funciуn, pero: їComo es que tienes las id como en el ejemplo: 0, 1, 4, 6, 7, y no las tienes como 0, 1, 2, 3, 4, 5, 6, 7?

Porque podrнamos arreglar lo que tu quieres desde ahн, es decir:

Esto podrнa generarse al eliminar la cuenta id 2, que quedarнa 0, 1, 3, 4, 5, 6, 7 y en ese caso lo podrнamos arreglar.

Por eso vuelvo a preguntar, їComo es que tienes las id como en el ejemplo: 0, 1, 4, 6, 7, y no las tienes como 0, 1, 2, 3, 4, 5, 6, 7, en que momento es que se te ponen las id asн?
Reply
#6

no me las pone xD, es un simple ejemplo haber mira tu piensa lo si siguiente y nada mas solo esto:


Tienes la tabla Jugadores con las ids:

0
1
3
4
5
6
7
etc....

bien en esa tabla al crearse un jugador nuevo, quiero que busque a id mas pequeсa que NO este creada osea 2,

si sabrнas ayudarme mejor hablemos por pm, Gracias.
Reply
#7

mmm, prueba asн:
pawn Код:
stock numid()
{
    new numid = -1;
    for(new i = 0; i != MAX_PLAYERS; i ++)
    {
        new Query[150], DBResult:Result;
        format(Query, sizeof(Query), "SELECT * FROM `TABLA` WHERE `ID` = '%d'", i);
        Result = db_query(Database, Query);
        if(!db_num_rows(Result))
        {
            numid = i;
            break;
        }
    }
    return numid;
}
Reply
#8

Quote:
Originally Posted by adri1
Посмотреть сообщение
mmm, prueba asн:
pawn Код:
stock numid()
{
    new numid = -1;
    for(new i = 0; i != MAX_PLAYERS; i ++)
    {
        new Query[150], DBResult:Result;
        format(Query, sizeof(Query), "SELECT * FROM `TABLA` WHERE `ID` = '%d'", i);
        Result = db_query(Database, Query);
        if(!db_num_rows(Result))
        {
            numid = i;
            break;
        }
    }
    return numid;
}

Esta funcion enviara muchas consultas la cual a la vez produce LAG. Seсor Caja_Negra la verdad es que no existe dicha funcion, puede usar el metodo de Adri1 pero recuerde que este metodo no sirve si por ejemplo es un sistema infinito como los son las cuentas de usuarios.

PD: Si quiere evitar este problema basta con eliminar la columna que contiene la ID y updatear las consultas de una fila con el nombre del usuario y problema resuelto.

Un saludo.
Reply
#9

Quote:
Originally Posted by oOFotherOo
Посмотреть сообщение

Esta funcion enviara muchas consultas la cual a la vez produce LAG. Seсor Caja_Negra la verdad es que no existe dicha funcion, puede usar el metodo de Adri1 pero recuerde que este metodo no sirve si por ejemplo es un sistema infinito como los son las cuentas de usuarios.

PD: Si quiere evitar este problema basta con eliminar la columna que contiene la ID y updatear las consultas de una fila con el nombre del usuario y problema resuelto.

Un saludo.
Si, de todas formas no se para que guardas la ID del player, ya que eso cambia siempre...
Reply
#10

Encontrar la ID mбs pequeсa que NO estй creada:
Код:
SELECT Id+1 FROM `Jugadores` n WHERE NOT EXISTS(SELECT *  FROM `Jugadores` WHERE Id = n.Id + 1) ORDER BY Id LIMIT 1
Insertar algo donde la ID mбs pequeсa NO estй creada:

Код:
INSERT INTO `Jugadores` (`id`, `nombre`) SELECT id + 1, 'Alfredo' FROM `Jugadores` n WHERE NOT EXISTS(SELECT * FROM `Jugadores` WHERE id = n.id + 1) ORDER BY id LIMIT 1
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)