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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Décaler les valeurs dans une base mySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Décaler les valeurs dans une base mySQL

n°917328
azkatari
Posté le 07-12-2004 à 19:21:08  profilanswer
 

coucou,
 
j'ai une table mySQL appellée pages, comprenant deux champs: id et statut
id correspondant au numéro de la page, et statut indiquant par 0 ou 1 si elle est vide ou pas
 
si je veux insérer qqc sur une page déjà pleine, je dois pouvoir décaler le contenu de cette page et insérer le mien. disons que je veux inserer du contenu en page 1, je dois pouvoir passer de:
 
page 1 pleine
page 2 vide
page 3 pleine
 
a page 1 pleine, page 2 pleine, page 3 vide
 
y a t'il une syntaxe SQL dans update permettant de récuperer la valeur du champ de la ligne précédente?

mood
Publicité
Posté le 07-12-2004 à 19:21:08  profilanswer
 

n°917769
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-12-2004 à 11:00:20  profilanswer
 

non. à la limite, avec une sous-requête de derrière les fagots, je te fais ça pour un vrai SGBD, mais vu qu'il y a 99,999999999999 % des chances pour que ton MySQL ne supporte pas les sous-requêtes, confirme d'abors ce point avant que je me creuse pour la solution.


Message édité par Arjuna le 08-12-2004 à 11:00:32
n°917930
skeye
Posté le 08-12-2004 à 13:59:50  profilanswer
 

Arjuna a écrit :

vu qu'il y a 99,999999999999 % des chances pour que ton MySQL ne supporte pas les sous-requêtes


Les versions 3.x commencent à dater hein...[:dawa]


---------------
Can't buy what I want because it's free -
n°917934
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-12-2004 à 14:03:18  profilanswer
 

skeye a écrit :

Les versions 3.x commencent à dater hein...[:dawa]


Et y'a pas beaucoup de FAI qui sont passé aux 4.x, et encore moins qui ont activé cette fonction qui est débrayable.


Message édité par Arjuna le 08-12-2004 à 14:03:43
n°918172
gee
Bon ben hon
Posté le 08-12-2004 à 18:06:44  profilanswer
 

Normalement il devrait s'agir d'une base MySQL en version 4 sur notre server.
 
Mais comme je n'en suis pas sur il vaut mieux que l'auteur confirme.
 
Le but est bien évidemment de demander moins de ressource, qu'une requete par "page".

n°918360
Arjuna
Aircraft Ident.: F-MBSD
Posté le 08-12-2004 à 22:07:07  profilanswer
 

Bon, grossomodo :
 

Code :
  1. -- Création de la nouvelle page (vide)
  2. insert into latable (status) values (' ');
  3. update latable t1
  4. set t1.status = (
  5.   selecy nvl(t2.status, '$valeurDeLaPageInsérée')
  6.   from latable t2
  7.   where t2.page(+) = t1.page - 1
  8.   and t2.page(+) > $positionPageInsérée
  9. )
  10. where t1.page >= $positionPageInsérée


 
A tester, et adapter la syntaxe à MySQL.
A priori, d'un point de vue "logique" ça doit être ça.
 
Cela dit... Je viens de réfléchir une seconde... Y'a pas besoin de faire ça !
 
Dans le cas où tu insères une page sur une page déjà pleine :
 
update latable set pageid = pageid + 1 where pageid >= $pageEnCours;
insert into latable (pageid, page) values ($pageEnCours, 'bla bla');
 
C'est plus simple :D


Message édité par Arjuna le 08-12-2004 à 22:10:37

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Décaler les valeurs dans une base mySQL

 

Sujets relatifs
[Oracle] Créer une base de données[SQL SERVER] Faire un dump de la base en SQL
Requête MySQL et création de Menus[Access] Partage d'une base sur reseau avec tables liées
pb actualisation d'une variable mysql[PHP/MySQL] Serveur ne traite pas l'info ?
Configuration MySQLOVH et host mysql
oracle/mysql et php comment acceder à une base (oracle ) à "distance"? 
Plus de sujets relatifs à : Décaler les valeurs dans une base mySQL


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