Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

ayuda con Mysql Mssql y php

Estas en el tema de ayuda con Mysql Mssql y php en el foro de Bases de Datos General en Foros del Web. Hola: Estoy migrando una base de datos de mysql a sql server, y me encontre con este problema query de mysql = select * from ...
  #1 (permalink)  
Antiguo 02/08/2003, 14:47
 
Fecha de Ingreso: abril-2003
Ubicación: Bogota
Mensajes: 131
Antigüedad: 21 años, 7 meses
Puntos: 2
ayuda con Mysql Mssql y php

Hola:

Estoy migrando una base de datos de mysql a sql server, y me encontre con este problema

query de mysql = select * from usuario limit 0,10


pero en mssql no se cual es el equivalente....



gracias
  #2 (permalink)  
Antiguo 02/08/2003, 14:54
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años, 7 meses
Puntos: 2
select top 10 * from usuario. Y esto es de BD no de PHP
  #3 (permalink)  
Antiguo 02/08/2003, 15:00
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 10 meses
Puntos: 0
Si, pero igual. En su consulta esta diciendo que le muestre 10 registros empezando de 0
Cita:
query de mysql = select * from usuario limit 0,10
Y en lo que tu sugieres le estas diceindo que le muestre los 10 primeros.

Cita:
select top 10 * from usuario

Yo no conozco al menos hasta ahora algo similar, que alguien lo alcare.

Hay que informar bien

Saludos

Última edición por biblio; 02/08/2003 a las 15:04
  #4 (permalink)  
Antiguo 02/08/2003, 15:17
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
Si la idea es hacer paginacion con los select en SQL Server pues eso no se puede. La clausula TOP sirve para devolver los "n" primeros registros.
__________________
No tengo firma ahora... :(
  #5 (permalink)  
Antiguo 02/08/2003, 15:48
 
Fecha de Ingreso: abril-2003
Ubicación: Bogota
Mensajes: 131
Antigüedad: 21 años, 7 meses
Puntos: 2
Es exactamente lo que necesito... la paginacion, como lo dice Mickel, Pero si el dice que no se puede hacer, entonces como hago para hacer esa parte?

Acaso un listado en sql server no es posible paginarlo.....?
  #6 (permalink)  
Antiguo 02/08/2003, 16:02
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 10 meses
Puntos: 0
Visita ese enlace, dale una mirada, a lo mejor te sirve.

http://programacion.com/php/foros/7/msg/15414/

Saludos
  #7 (permalink)  
Antiguo 02/08/2003, 22:21
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años, 7 meses
Puntos: 2
Cita:
Mensaje Original por biblio
Si, pero igual. En su consulta esta diciendo que le muestre 10 registros empezando de 0


Y en lo que tu sugieres le estas diceindo que le muestre los 10 primeros.


Ehhmmm si claro, pero que no estas diciendo lo mismo

"En su consulta esta diciendo que le muestre 10 registros empezando de 0"

1,2,3,4,5,6,7,8,9,10

"Y en lo que tu sugieres le estas diceindo que le muestre los 10 primeros."

1,2,3,4,5,6,7,8,9,10

Cual es la diferencia?
  #8 (permalink)  
Antiguo 02/08/2003, 22:39
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 10 meses
Puntos: 0
La diferencia está en que en MySQL le puedo decir por ejmplo.

Cita:
query de mysql = select * from usuario limit 4 ,10
Y el resultado será otro, no crees?
  #9 (permalink)  
Antiguo 02/08/2003, 22:44
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años, 7 meses
Puntos: 2
eh lógico, pero da la casualidad que estamos hablando de estas dos consultas:

select * from usuario limit 0,10

select top 10 * from usuario

responde... Son equivalentes o no?
  #10 (permalink)  
Antiguo 02/08/2003, 22:58
 
Fecha de Ingreso: abril-2003
Ubicación: Bogota
Mensajes: 131
Antigüedad: 21 años, 7 meses
Puntos: 2
Bueno... Acabo de encontrar la solucion a mi pregunta.... es la siguiente


select top (CantidadDeFilas) *
from usuario
where (Condiciones)
and id not in (select top (FilaIncicial) *
from usuario
where (Condiciones)
)


Donde CantidadDeFilas podria ser igual a 10 y FilaInicial podria ser igual a 25, entonces el query me arroja desde el id 25 al 35, y eso es exactamente lo que estaba buscando, porque esas variables si las puedo manipular.


Bueno.... Gracias por su ayuda, fue muy importante para lograr la solucion
  #11 (permalink)  
Antiguo 03/08/2003, 01:00
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 10 meses
Puntos: 0
Que bien que te haya resultado.

-----------------------------------------------------------------------------

Cita:
eh lógico, pero da la casualidad que estamos hablando de estas dos consultas:

select * from usuario limit 0,10

select top 10 * from usuario

responde... Son equivalentes o no?
No podemos asumir que esas dos consultas son equivalentes. Para un determinado resultado sí, como en este que mencionas, vale aclarar que no son equivalentes en su totalidad, ok.


Saludos
  #12 (permalink)  
Antiguo 03/08/2003, 20:25
 
Fecha de Ingreso: abril-2003
Mensajes: 606
Antigüedad: 21 años, 7 meses
Puntos: 2
Cita:
Para un determinado resultado sí,
Que a fin de cuentas es el equivalente a lo que pidio el usuario, gracias la query que puso, gracias...
  #13 (permalink)  
Antiguo 04/08/2003, 00:39
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
Si, pero...

select top (CantidadDeFilas) *
from usuario
where (Condiciones)
and id not in (select top (FilaIncicial) *
from usuario
where (Condiciones))

esta haciendo trabajar mucho al servidor. deberia ser

select top (CantidadDeFilas) *
from usuario
where (Condiciones)
and id not in (select top (FilaIncicial) id
from usuario
where (Condiciones))

y ponle un index en id
__________________
No tengo firma ahora... :(
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:30.