p'tit problème Sql

p'tit problème Sql - Programmation

Marsh Posté le 05-04-2001 à 23:36:46    

A priori cela devrait sembler simple a qq qui connait le language Sql.
J'ai donc une base de données qui contient des infos triées par in id. Le code ci-dessous me permet d'afficher toute la base par ordre décroissant d'id.
Comment faire pour qu'il ne me selectionne que le dernier id (cad le plus élevé) ?
 
$requete=mysql_query("select * from titre order by id desc" );
 while ($ligne = mysql_fetch_object($requete)) {
 print "
 
Merci

Reply

Marsh Posté le 05-04-2001 à 23:36:46   

Reply

Marsh Posté le 05-04-2001 à 23:46:10    

ou un endroit ou je pourrais me renseigner...
[:angiolino]

Reply

Marsh Posté le 06-04-2001 à 08:49:21    

il faudrait voir l'utilisation de MAX(ID) dans la requête

Reply

Marsh Posté le 06-04-2001 à 09:25:32    

Soit max(id)
 
soit " select * from titre order by id desc limit 1"

Reply

Marsh Posté le 06-04-2001 à 10:22:49    

Un p'tit select imbriqué?
 
select * from titre
where id = (select max (id) from titre)

Reply

Marsh Posté le 06-04-2001 à 10:38:11    

Fred999 a écrit a écrit :

Un p'tit select imbriqué?
 
select * from titre
where id = (select max (id) from titre)




 
ca marche mais c'est pas le plus rapide


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 06-04-2001 à 10:48:36    

Moi je fait ca en général:
select top 1 * from titre order by id desc

Reply

Marsh Posté le 06-04-2001 à 10:52:19    

Ceci ne marche pas sous mysql

Reply

Marsh Posté le 06-04-2001 à 11:07:36    

jupiler a écrit a écrit :

 
 
ca marche mais c'est pas le plus rapide




 
J'ai jamais dit que ça allait tracer... Et je connais pas MySQL.
 
Tu as une autre idée?

Reply

Marsh Posté le 06-04-2001 à 11:29:07    

MySQL n'est pas à la norme SQL ?

Reply

Marsh Posté le 06-04-2001 à 11:29:07   

Reply

Marsh Posté le 06-04-2001 à 11:42:17    

quand je vois des commandes comme
 
select top 1 *  from titre...
 
Jamais vu ça sous Oracle ni Sybase.
 
Je pense que chaque moteur prend certaines libertés avec la norme SQL standard (comme dans le traitement des dates)

Reply

Marsh Posté le 06-04-2001 à 12:10:12    

Top est du SQL standard, il me semble, quand même
Sinon comment tu fais pour avoir les 25 premiers éléments d'une table ?

Reply

Marsh Posté le 06-04-2001 à 12:20:48    

Pas de top en T-SQL... (SQL Server)
 
Bin tu fais un set rowcount 25.

Reply

Marsh Posté le 06-04-2001 à 12:36:19    

il me semble que rowcount marche sous oracle... a verifier :)

Reply

Marsh Posté le 06-04-2001 à 12:36:39    

En mysql
 
c'est limit 25


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 06-04-2001 à 13:04:19    

Bon
Euh excuse moi Fred mais Top marche très bien sous SQL Server  
De plus, le posteur veut une requête et pas du code de SGBD (TSQL,PLSQL,...), donc le rowcount faut carrément oublier
Pis MySQL n'est pas standard SQL alors

Reply

Marsh Posté le 06-04-2001 à 13:49:55    

Marrant, alors c'est T-SQL qui le refuse... Bon, on ne va pas jouer les intégristes du SQL... Et je ne connais pas le code propriétaire MySQL pour ce truc.

Reply

Marsh Posté le 06-04-2001 à 13:58:21    

thegti a écrit a écrit :

Bon
Euh excuse moi Fred mais Top marche très bien sous SQL Server  
De plus, le posteur veut une requête et pas du code de SGBD (TSQL,PLSQL,...), donc le rowcount faut carrément oublier
Pis MySQL n'est pas standard SQL alors




 
Si tu regardes le code qu'il présente tu vois qu'il execute ses requetes sur une base de type mysql, donc on essaie de répondre au mieux de ses besoins !!


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 06-04-2001 à 14:16:34    

Euh... Tu t'adresses à qui là?

Reply

Marsh Posté le 06-04-2001 à 14:23:43    

Fred999 a écrit a écrit :

Euh... Tu t'adresses à qui là?




A thegti


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 06-04-2001 à 14:26:02    

Ouais
 
mysql_query("SELECT MAX(id) FROM  titre" );
 
ca marche bien

Reply

Marsh Posté le 06-04-2001 à 19:57:07    

!!!!!!!
Merci messieurs !
très sympa !
[:angiolino]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed