Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2935 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [MySQL] Select qui ne sélectionne que la moitié d'une table,

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Select qui ne sélectionne que la moitié d'une table,

n°455818
vitom
www.produitinterieurbrut.com
Posté le 11-07-2003 à 23:58:22  profilanswer
 

j'ai fait une recherche mais pas trouvé  :sweat:  
 
est-ce que l'on peut faire un select qui ne prenne que la première moitié d'une table,
 
puis un select qui prenne la deuxième moitié,
 
Merci pour vos réponses :jap:

mood
Publicité
Posté le 11-07-2003 à 23:58:22  profilanswer
 

n°455821
*syl*
--> []
Posté le 12-07-2003 à 00:00:25  profilanswer
 

Citation :

The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments. The arguments must be integer constants. If two arguments are given, the first specifies the offset of the first row to return, the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1): To be compatible with PostgreSQL MySQL also supports the syntax: LIMIT # OFFSET #.  
mysql> SELECT * FROM table LIMIT 5,10;  # Retrieve rows 6-15
To retrieve all rows from a certain offset up to the end of the result set, you can use -1 for the second parameter:  
mysql> SELECT * FROM table LIMIT 95,-1; # Retrieve rows 96-last.
If one argument is given, it indicates the maximum number of rows to return:  
mysql> SELECT * FROM table LIMIT 5;     # Retrieve first 5 rows
In other words, LIMIT n is equivalent to LIMIT 0,n.

n°455852
vitom
www.produitinterieurbrut.com
Posté le 12-07-2003 à 00:30:02  profilanswer
 

syl --> merci pour ton post mais je n'y trouve pas ma réponse, je veux chopper la moitié de ma table, sachant que celle ci peut varier en quantité, donc je ne sais jusqu'ou prendre pour en sélectionnez la moitié,
 
en clair peut on systématiquement avoir la moitié, quelque soit le nombre d'entrées dans la base ?
 
@+

n°455853
*syl*
--> []
Posté le 12-07-2003 à 00:31:00  profilanswer
 

Bah tu fait un SELECT COUNT(*) puis un ensuite un SELECT .. LIMIT x,x

n°455859
vitom
www.produitinterieurbrut.com
Posté le 12-07-2003 à 00:44:54  profilanswer
 

*Syl* a écrit :

Bah tu fait un SELECT COUNT(*) puis un ensuite un SELECT .. LIMIT x,x


 
donc dans ce cas je vais chopper le nombre d'entrées, divisé par 2 le total et adapté les SELECT en conséquences,
 
mais imaginons que le nombre d'entrées soit impaires, comment je fait pour retomber sur mes pieds ?  :sweat: dsl j'abuse, merci bcp pour ton aide :jap:

n°455872
wallman
Posté le 12-07-2003 à 01:06:17  profilanswer
 

Moi je ferais une première requête qui compte le nombre d'entrées dans ta table.
$nombre_entree == le nombre d'entrées de ta table
 
Ensuite tu fait une requête avec :
limit ceil($nombre_entree)
 
//ceil est une fonction qui arrondi à l'entier supèrieur(UNIQUEMENT si $nombre_entree est un décimal)
//Avec cette requête tu aura tout les enregistrements de 0 à ceil($nombre_entree)
 
Puis tu fait une autre requête avec :
limit ceil($nombre_entree),-1
 
//Avec cette autre requête tu aura tout les enregistrements de ceil($nombre_entree)+1 jusqu'au dernier.
 
 
Celà donnerait :
$sql="SELECT * FROM table";
$result=mysql_query($sql);
$nombre_entree=mysql_num_rows($result);
 
//Requête pour avoir la première partie de la table
$sql="SELECT * FROM table LIMIT ".ceil($nombre_entree);
$result=mysql_query($sql);
 
//Requête pour avoir la deuxième partie de la table
$sql="SELECT * FROM table LIMIT ".ceil($nombre_entree).",-1;
$result=mysql_query($sql);

 
 
Voilà, bonne soirée !

n°455926
vitom
www.produitinterieurbrut.com
Posté le 12-07-2003 à 10:59:32  profilanswer
 

Wallman a écrit :

Moi je ferais une première requête qui compte le nombre d'entrées dans ta table.
$nombre_entree == le nombre d'entrées de ta table
 
Ensuite tu fait une requête avec :
limit ceil($nombre_entree)
 
//ceil est une fonction qui arrondi à l'entier supèrieur(UNIQUEMENT si $nombre_entree est un décimal)
//Avec cette requête tu aura tout les enregistrements de 0 à ceil($nombre_entree)
 
Puis tu fait une autre requête avec :
limit ceil($nombre_entree),-1
 
//Avec cette autre requête tu aura tout les enregistrements de ceil($nombre_entree)+1 jusqu'au dernier.
 
 
Celà donnerait :
$sql="SELECT * FROM table";
$result=mysql_query($sql);
$nombre_entree=mysql_num_rows($result);
 
//Requête pour avoir la première partie de la table
$sql="SELECT * FROM table LIMIT ".ceil($nombre_entree);
$result=mysql_query($sql);
 
//Requête pour avoir la deuxième partie de la table
$sql="SELECT * FROM table LIMIT ".ceil($nombre_entree).",-1;
$result=mysql_query($sql);

 
 
Voilà, bonne soirée !


 
merci beaucoup pour ta réponse bien complète ! :jap: je m'y mets... @+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [MySQL] Select qui ne sélectionne que la moitié d'une table,

 

Sujets relatifs
[PHP/MySQL]Problème d'UPDATE avec une variable contenue dans l'url[PHP/SQL] SELECT pour intervalle de A-M et N-Z
[Mysql + MyODBC]Problème de lenteur !![PHP] Rafraîchir un select de formulaire ?
[PHP] maj d'un champ texte en fonction d'un element selectionné1 table ou 2 ?
[mysql]optimisation d'un requeteSyntaxe pour créer 2 tables Mysql à partir de mysql_query() ?
[Mysql] créer n nom de table avec un # dedans ??? 
Plus de sujets relatifs à : [MySQL] Select qui ne sélectionne que la moitié d'une table,


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR