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

 


Débat n°1




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  10  11  12  ..  21  22  23  24  25  26
Auteur Sujet :

BlaBla@SQL

n°2035672
skeye
Posté le 12-11-2010 à 15:14:51  profilanswer
 

Reprise du message précédent :

koskoz a écrit :

Y a pas mieux que ça ?
 
WHERE sysdate < TO_DATE('12-11-2010 17:00', 'DD/MM/YYYY HH24:MI')


Je vois pas ce que tu entends par "mieux", là.[:autobot]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 12-11-2010 à 15:14:51  profilanswer
 

n°2035675
koskoz
They see me trollin they hatin
Posté le 12-11-2010 à 15:17:16  profilanswer
 

Nan, ça va en fait, je m'étais embrouillé avec les TO_CHAR (le prof qui nous sort qu'on doit utiliser un to_char pour comparer une date donnée...).

Message cité 1 fois
Message édité par koskoz le 12-11-2010 à 15:17:27

---------------
Twitter
n°2035680
flo850
moi je
Posté le 12-11-2010 à 15:32:34  profilanswer
 

koskoz a écrit :

Nan, ça va en fait, je m'étais embrouillé avec les TO_CHAR (le prof qui nous sort qu'on doit utiliser un to_char pour comparer une date donnée...).


 [:b vampire]

n°2035681
theredled
● REC
Posté le 12-11-2010 à 15:41:58  profilanswer
 

skeye a écrit :


Je vois pas ce que tu entends par "mieux", là.[:autobot]


Sous MySQL c'est  
WHERE '12-11-2010 17:00' < NOW() :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2035688
koskoz
They see me trollin they hatin
Posté le 12-11-2010 à 15:56:14  profilanswer
 

theredled a écrit :


Sous MySQL c'est  
WHERE '12-11-2010 17:00' < NOW() :o


 
C'est sûrement pour ça que ça me choquait :o


---------------
Twitter
n°2035689
theredled
● REC
Posté le 12-11-2010 à 15:58:26  profilanswer
 

koskoz a écrit :


 
C'est sûrement pour ça que ça me choquait :o


assume :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2035710
koskoz
They see me trollin they hatin
Posté le 12-11-2010 à 18:58:00  profilanswer
 

Y a pas à dire, MySQL est plus pratique [:cosmoschtroumpf]


---------------
Twitter
n°2035716
theredled
● REC
Posté le 12-11-2010 à 19:50:32  profilanswer
 

haha, il a dit que MySQL est plus pratique [:haha]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°2035717
mareek
Et de 3 \o/
Posté le 12-11-2010 à 19:56:05  profilanswer
 

theredled a écrit :

haha, il a dit que MySQL est plus pratique [:haha]


En même temps c'est difficile de faire moins pratique qu'Oracle [:cosmoschtroumpf]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2035724
skeye
Posté le 12-11-2010 à 20:14:13  profilanswer
 

mareek a écrit :


En même temps c'est difficile de faire moins pratique qu'Oracle [:cosmoschtroumpf]


Tant que c'est pas toi qui administre ça se passe bien, la plupart du temps [:cosmoschtroumpf]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 12-11-2010 à 20:14:13  profilanswer
 

n°2035825
Alekusu2
Posté le 13-11-2010 à 20:48:09  profilanswer
 

Petit problème sous MySQL :
 
J'ai une colonne type TIMESTAMP avec un default TIMESTAMP_CURRENT, sauf que quand je fais des modifs sur la table, le champs ne se met pas à jour :??:
 
Une idée ?
 
merki :jap:


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2035843
skeye
Posté le 13-11-2010 à 23:26:54  profilanswer
 

Alekusu2 a écrit :

Petit problème sous MySQL :
 
J'ai une colonne type TIMESTAMP avec un default TIMESTAMP_CURRENT, sauf que quand je fais des modifs sur la table, le champs ne se met pas à jour :??:
 
Une idée ?
 
merki :jap:


Je vois pas pourquoi il se mettrait à jour si tu lui dis pas de le faire. Le default n'est utilisé qu'à l'insertion si tu ne donnes pas expressément de valeur.


---------------
Can't buy what I want because it's free -
n°2035844
masklinn
í dag viðrar vel til loftárása
Posté le 13-11-2010 à 23:41:23  profilanswer
 

Alekusu2 a écrit :

Petit problème sous MySQL :
 
J'ai une colonne type TIMESTAMP avec un default TIMESTAMP_CURRENT, sauf que quand je fais des modifs sur la table, le champs ne se met pas à jour :??:
 
Une idée ?
 
merki :jap:


Lire la doc [:domi9999]  
 
Si tu mets un default mais pas un on update, il se met pas à jour, faut soit rien mettre du tout soit mettre DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP (ils sont équivalent) si tu veux que la colonne doit settée au timestamp actuel à la création et à chaque update de la row [:cerveau petrus]


Message édité par masklinn le 13-11-2010 à 23:41:45

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2035846
Alekusu2
Posté le 13-11-2010 à 23:57:00  profilanswer
 

[:mister yoda]  [:mister yoda]  [:mister yoda]  
 
Je le savais en plus, faute d'étourderie  [:doros:1]
 
Merci beaucoup pour ce rappel à l'ordre :jap:


Message édité par Alekusu2 le 13-11-2010 à 23:57:16

---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2036706
skylight
Made in France.
Posté le 17-11-2010 à 17:38:38  profilanswer
 

Hello :hello:
 
J'ai une petite question à la con :o :D
 
Je dispose de 2 tables :  
users (user_id, last_visite)
 
et forum_users (user_id, user_posts, user_level)
 
Ces 2 tables sont liées par le champ user_id.
 
J'ai fait du ménage dans users (j'ai supprimé tous les users ayant 0000-00-00 en lastvisite).
 
Maintenant, je voudrais supprimer les entrées qui ont été virées de users, dans forum_users (synchroniser quoi)
 
Sauf que je me souviens plus exactement comment procéder  :whistle:  
 
Avant de faire la requete de suppression, j'ai fait une requete de selection histoire de voir ce que je récupère est bien ce que je dois supprimer :D
 
Lors de la jointure, si je fais un bête SELECT, j'ai tous les users, et pour ceux dont j'ai supprimé l'entrée dans users, le champ vaut NULL.
 

Citation :

SELECT A.user_id, B.lastvisite
FROM forum_users AS A
LEFT JOIN users AS B ON B.user_id = A.user_id


 
Maintenant, je cherche un moyen pour ne récupérer que ceux dont le champ vaut NULL :o
 
Hors si je fais un  
 

Citation :

SELECT A.user_id, B.lastvisite
FROM forum_users AS A
LEFT JOIN users AS B ON B.user_id = A.user_id
WHERE B.lastvisite = NULL


J'ai aucun enregistrement qui sort (normal à priori).
 
Faut que je passe par un "NOT IN()" :??:
 
Merci bien :jap:


Message édité par skylight le 17-11-2010 à 17:38:57
n°2036709
skylight
Made in France.
Posté le 17-11-2010 à 17:46:06  profilanswer
 

Bon j'ai trouvé un truc pas forcément propre, mais qui marche :D (vu la rareté de cette opération :

 
Code :
  1. DELETE FROM forum_users
  2. WHERE NOT EXISTS
  3.    (SELECT * FROM users
  4.    WHERE forum_users.user_id = users.user_id)
 


Message édité par skylight le 17-11-2010 à 17:46:19
n°2036964
Alekusu2
Posté le 18-11-2010 à 16:55:22  profilanswer
 

Problème moisi en SQL, requete type MATCH/AGAINST que je fais sur 3 colonnes fulltext. Le problème c'est que quand je fais la recherche sur les 3 ça marche pas, ça me fout un #1191 - Can't find FULLTEXT index matching the column list  
 
Par contre, quand je fais la même requete mais en retirant 2 colonnes, ça marche, qu'importe la colonne...
 
donc je fais ça j'ai l'erreur :
 

Code :
  1. "SELECT titre,visuel,description,id,auteur,dateajout,MATCH(titre,description,auteur) AGAINST('".$_GET['mot']."') AS score FROM table  WHERE MATCH(titre,description,auteur) AGAINST('".$_GET['mot']."') ORDER BY score DESC";


 
Mais je fais ça ça marche :  
 

Code :
  1. "SELECT titre,visuel,description,id,auteur,dateajout,MATCH(titre) AGAINST('".$_GET['mot']."') AS score FROM table  WHERE MATCH(titre) AGAINST('".$_GET['mot']."') ORDER BY score DESC";


 
et je peux remplacer titre par auteur ou description, ça marchera toujours, mais si je mets les 3 ça marche plus.


Message édité par Alekusu2 le 18-11-2010 à 17:04:08

---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2036971
flo850
moi je
Posté le 18-11-2010 à 17:07:31  profilanswer
 

tu as défini ton index comment ?

n°2036973
Alekusu2
Posté le 18-11-2010 à 17:08:44  profilanswer
 

flo850 a écrit :

tu as défini ton index comment ?


sopus phpmyadmin, j'ai cliqué sur le petit bouton "text" dans la ligne de la structure pour chacune des colonnes et now j'ai mes 3 index dans la partie index en FULLTEXT :o
Je sais pas si je suis clair. Bref je suis passé par l'interface visuel et non par une requête, mais ça change quelque chose ?


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2036975
flo850
moi je
Posté le 18-11-2010 à 17:14:01  profilanswer
 

très peu

Citation :


Pour les recherches en texte intégral et en langage naturel, la technique impose que les colonnes utilisées avec la fonction MATCH() doivent être les mêmes que les colonnes utilisées dans un index FULLTEXT. Dans la requête précédente, notez que les colonnes nommées dans la fonction MATCH() (title et body) sont les mêmes que celles de la définition de la table article et son index FULLTEXT. Si vous voulez rechercher le titre title ou le corps body séparément, vous devrez créer un index FULLTEXT pour chaque colonne.


quand on te dis de lire un peu la doc avant de tripatouiller des choses
http://dev.mysql.com/doc/refman/5. [...] earch.html


Message édité par flo850 le 18-11-2010 à 17:14:15
n°2036982
Alekusu2
Posté le 18-11-2010 à 17:38:51  profilanswer
 

J'avais lu mais mal compris, merci :jap:


---------------
Ils ne sont grands que parce que nous sommes à genoux. - Topic Kingdom
n°2040008
koskoz
They see me trollin they hatin
Posté le 04-12-2010 à 12:20:38  profilanswer
 

Ceux qui utilisent MySQL, vous utilisez MyISAM ou InnoDB ?
InnoDB me semble mieux pour ce qui est du respect des contraintes SQL cependant j'ai entendu dire qu'il était moins perf que MyISAM, mais les benchs que je trouve me montrent le contraire.


---------------
Twitter
n°2040009
masklinn
í dag viðrar vel til loftárása
Posté le 04-12-2010 à 12:24:23  profilanswer
 

koskoz a écrit :

Ceux qui utilisent MySQL, vous utilisez MyISAM ou InnoDB ?
InnoDB me semble mieux pour ce qui est du respect des contraintes SQL cependant j'ai entendu dire qu'il était moins perf que MyISAM, mais les benchs que je trouve me montrent le contraire.


Si tu ne fais quasiment que de la lecture (>90%? >95%?), MyISAM est censé être plus rapide.
 
Après si InnoDB est plus rapide pour toi, c'est d'autant mieux: meilleure intégrité des données (si tu l'utilises correctement) et meilleures perfs, t'as le beur et l'argent du beur.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2040010
koskoz
They see me trollin they hatin
Posté le 04-12-2010 à 12:32:10  profilanswer
 

http://www.mysqlperformanceblog.co [...] ks-part-1/
InnoDB est presque toujours devant, même en lecture.
 
Après sur le site d'innoDB c'est un peu différent : http://www.innodb.com/wp/products/innodb/benchmarks/
 
Enfin après pouvoir faire des transactions et respecter ne serait-ce que les fk, je ne trouve pas ça plus mal.


---------------
Twitter
n°2049678
seabee
Posté le 17-01-2011 à 16:02:26  profilanswer
 

Citation :

Sharding is the secret ingredient to web-scale


 
http://nosql.mypopescu.com/post/10 [...] -web-scale
 
 [:zirk]

n°2049949
skeye
Posté le 18-01-2011 à 17:39:49  profilanswer
 

Crosspost de blabla@prog :

 
Code :
  1. SELECT lib FROM matable
  2. ORDER BY lib
 

sqlplus directement sur le serveur oracle :

Citation :


->zzz
aaa
bbb

 

toad :

Citation :


aaa
bbb
->zzz

 


Un expert pour indiquer la variable d'env oracle à la con qui manque coté toad pour que ça retourne la même chose des deux cotés?


Message édité par skeye le 18-01-2011 à 17:40:17

---------------
Can't buy what I want because it's free -
n°2050393
skeye
Posté le 20-01-2011 à 10:58:18  profilanswer
 

J'ai oublié de poster la solution...Pour ceux qui pourraient avoir ce genre de blagues, variable d'environnement oracle NLS_SORT! [:dawak]


---------------
Can't buy what I want because it's free -
n°2054111
krifur
Posté le 03-02-2011 à 17:34:41  profilanswer
 

lut,
j'ai une requete de la forme:

Citation :

 
$sql = "SELECT * FROM tb_A LEFT JOIN tb_B ON (id_d=id_b)
                                           LEFT JOIN tb_C USING (id_d)
                                           LEFT JOIN tb_D USING (id_d)
                                           LEFT JOIN tb_E ON (id_e=id_d)
                                           LEFT JOIN tb_F  USING (id_d)
                                           LEFT JOIN tb_G USING (id_d);


Cette requête était valide jusqu'à ce que je rajoute une table contenant des champs ayant le même nom que des champs existants du coup je ne peux plus passer par * ...
Comment procéder ?

n°2054116
E-Nyar
I ain't no nice guy after all
Posté le 03-02-2011 à 17:54:31  profilanswer
 

Citation :


$sql = "SELECT tb_A.*, tb_B.*, tb_C.*, ...
                            FROM tb_A LEFT JOIN tb_B ON (id_d=id_b)
                                           LEFT JOIN tb_C USING (id_d)
                                           LEFT JOIN tb_D USING (id_d)
                                           LEFT JOIN tb_E ON (id_e=id_d)
                                           LEFT JOIN tb_F  USING (id_d)
                                           LEFT JOIN tb_G USING (id_d);

 

Par contre pour les champs ayant le même nom, tu risque de te retrouver avec des [champs]_1 à la place du nom...


Message édité par E-Nyar le 03-02-2011 à 17:55:39

---------------
Don't fuck me, I'm anonymous.
n°2054249
krifur
Posté le 04-02-2011 à 10:17:39  profilanswer
 

Code :
  1. SELECT D.*,S.*,E.*,M.*,C.*,X.*,L.*
  2.                                   FROM tb_diag as D
  3.                                   LEFT JOIN tb_serialize as S ON D.id_diag=id_serialize
  4.                                   LEFT JOIN tb_exploitation as E ON (D.id_diag=E.id_diag)
  5.                                   LEFT JOIN tb_commune as M USING (id_commune)
  6.                                   LEFT JOIN tb_canton as C ON (code_canton=C.code)
  7.                                   LEFT JOIN tb_animaux as X ON (D.id_diag=X.id_diag)
  8.                                   LEFT JOIN tb_client as L ON (D.id_client=L.id_client)
  9.                                   WHERE is_valide=0;


Si je fait un truc comme ça, les champs en double sont simplement ignorés, par exemple si j'ai un champ "departement" dans tb_diag et dans tb_client , ben j'aurais que la valeur de du champ de la table tb_diag...

n°2054286
flo850
moi je
Posté le 04-02-2011 à 11:12:19  profilanswer
 

de toute façon * , c'est le mal

n°2054312
krifur
Posté le 04-02-2011 à 11:40:51  profilanswer
 

I sense trolling :o
 
Disons que la j'ai 300 champs à exporter , je me vois mal tout spécifier dans le select, y a pas moyen d'avoir un * qui écrase pas les champs déjà spécifier ? (j'arrive pas à obtenir renommage si doublons comme : [champs]_1 ?? )

n°2055237
krifur
Posté le 09-02-2011 à 00:20:08  profilanswer
 

Sinon pour une requête de la sorte:
 
Select * from tableA as A left join tableB as B using(id_tableA) left join tableC as C using(id_tableA);
 
Si la table B ne contient qu'une seule fois l'id A (relation 1-1) et la Table C 3 fois l id A (1-n) la requête suivante contiendra 3 résultats...
 
Comment faire pour qu'elle n'en retourne qu'une ? que les résultats de la table C soient listées a l'intérieur du résultat global ?

n°2055244
skeye
Posté le 09-02-2011 à 07:12:05  profilanswer
 

distinct?


---------------
Can't buy what I want because it's free -
n°2055245
flo850
moi je
Posté le 09-02-2011 à 07:21:36  profilanswer
 

tu veux faire quoi des resultats " en trop " de C ?  
 

n°2055293
krifur
Posté le 09-02-2011 à 10:49:43  profilanswer
 

distinct -> je pense pas , il me faut bien les 3 valeurs de la table_C (à moins que ce soit pas ton idée ?)
 
flo850-> en fait je récupère de la table A et B un gros paquet de valeur, genre 200 (il y a d 'autres tables en fait dans mes left join mais toujours en 1=1) et j'ai qu'une table ou les valeurs sont en 1=n de la quelle j'extirpe 3 occurrences de 3 champs (table_C)... Du coup pour extraire 209 champs, j 'en récupère 609, ca pourrait aller sur une requête mais c est une boucle de 500 éléments a peu pres donc la différence commence a ce faire sentir...

n°2055295
skeye
Posté le 09-02-2011 à 10:59:06  profilanswer
 

krifur a écrit :

distinct -> je pense pas , il me faut bien les 3 valeurs de la table_C (à moins que ce soit pas ton idée ?)
 
flo850-> en fait je récupère de la table A et B un gros paquet de valeur, genre 200 (il y a d 'autres tables en fait dans mes left join mais toujours en 1=1) et j'ai qu'une table ou les valeurs sont en 1=n de la quelle j'extirpe 3 occurrences de 3 champs (table_C)... Du coup pour extraire 209 champs, j 'en récupère 609, ca pourrait aller sur une requête mais c est une boucle de 500 éléments a peu pres donc la différence commence a ce faire sentir...


 
ok, j'avais mal compris la question.
...mais d'un autre coté ma réponse devient "on ne fait pas".[:joce]
Pas de miracles, on ne sait pas retourner des lignes avec un nombre de champs variable, et de toute manière ce serait la merde à traiter...mysql a un truc qui permet de faire ça (group_concat), mais c'est de la merde.


---------------
Can't buy what I want because it's free -
n°2055297
skeye
Posté le 09-02-2011 à 11:00:25  profilanswer
 

...et 200 lignes ou 600 c'est du même ordre, c'est probablement pas là qu'il faut optimiser, si c'est lent.:o


---------------
Can't buy what I want because it's free -
n°2055556
Oliiii
Posté le 09-02-2011 à 17:07:22  profilanswer
 

Moi j'ai rien pigé encore une fois ...
Si t'as 609 lignes a la place de 203, tu veux faire quoi des 406 qui restent?  
C'est des doubles?
 
Me faut un exemple pour montrer la difficulté, pcq la je vois pas ce qui cloche :)
Un vrai exemple hein, pas un truc avec 3 records :)

n°2055558
skeye
Posté le 09-02-2011 à 17:14:32  profilanswer
 

Oliiii a écrit :

Moi j'ai rien pigé encore une fois ...
Si t'as 609 lignes a la place de 203, tu veux faire quoi des 406 qui restent?  
C'est des doubles?
 
Me faut un exemple pour montrer la difficulté, pcq la je vois pas ce qui cloche :)
Un vrai exemple hein, pas un truc avec 3 records :)


 
Il a ça:
 
A B C
A B C2
A B C3
 
il veut ça :
 
A B C C2 C3


---------------
Can't buy what I want because it's free -
n°2055566
krifur
Posté le 09-02-2011 à 17:47:12  profilanswer
 

oui les 406 sont des doubles ...
edit skeye : oui voila mais 1 seule occurrence ramène 300 champs donc si il me la double voir triple, ca fait qu'il ramène 600/900 champs dont 300/600 en double/triple, et vu que c est dans une boucle x500 ben ca fait un max de données qui transite pour rien ...
 
Donc voila avoir un truc genre A B C C2 C3 ca le ferait ...

Message cité 1 fois
Message édité par krifur le 09-02-2011 à 17:48:20
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  10  11  12  ..  21  22  23  24  25  26

Aller à :
Ajouter une réponse
 

Sujets relatifs
Requete SQL de selection complexe[SQL SERVER] Ajout d'une colonne en PS...mais inutilisable
[ODBC] DSN pour se connecter à une base SQL[PDO/SQL] Aide selection et classement (JOIN ??)
Problème conditions requete SQLSQL/PHP BDD de réservation de chambres
Jointure 'LIKE' SQL => BOtable SQL Ajouter une colonne au lieu de creer une nouvelle table
Requête SQL complexe 
Plus de sujets relatifs à : BlaBla@SQL


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)