Showing entries 1 to 5
Displaying posts with tag: requêtes (reset)
Des requêtes à problèmes?

Quand MySQL se me à déraper, c’est habituellement l’oeuvre de quelques requêtes SQL problématiques.  Un petit rappel pour vous aider à trouver la/les coupables!

Quick Guide On How To Ask A MySQL-related Question Properly

Note: this article was originally posted in French here.

You!  Yes!  Yep, you! I’m talking to you my friend!  You, the one that I help out in forums, on IRC, on mailing lists!

Each and every day, I answer questions related to MySQL, mostly about SQL queries or optimization problems. Whether it’s on dBForums, Stack Overflow, MySQL.com, developpez.net or on IRC (irc.freenode.net, channel #mysql), it’s always the same thing! If you want me to help you, make it easy for me!

So, here’s a quick guide explaining what you have to do if …

[Lire plus]
Guide rapide de la question MySQL bien posée

Oui!  Toi mon ami!  Oui!  Toi!  C’est à toi que je m’adresse!  Celui que je dépanne et que j’aide « gratis » à chaque jour!

Je réponds quotidiennement à des questions au sujet de MySQL, principalement de requêtes et d’optimisation.  Que ce soit sur dBForums, Stack Overflow, MySQL.com, developpez.net ou sur IRC (irc.freenode.net, channel #mysql), c’est toujours la même chose.  Si tu veux que je t’aide, aide-moi à t’aider!

Donc, un petit guide de ce qu’il faut faire pour qu’on puisse résoudre ton problème le plus rapidement possible.

Explique ton problème clairement

Si tu es …

[Lire plus]
Stockage des IP : le mystère de l’adresse 127.255.255.255

Il est assez courant d’avoir besoin de stocker des adresses IP dans une base MySQL et malheureusement il n’est pas très courant que la manière de faire soit optimisée. Cet article vous propose de faire le point sur le sujet, ainsi que sur une erreur qu’on rencontre quand on fait presque bien les choses, mais pas tout à fait.

Comme il n’existe pas de type natif sous MySQL pour les adresses IP, la première idée consiste à se servir d’une chaîne de caractères. Une adresse IPv4 fait au maximum 15 caractères (aaa.bbb.ccc.ddd), on peut donc prendre un champ VARCHAR(15) qui utilisera au maximum 16 octets par valeur, soit 15 au maximum pour l’adresse plus 1 pour stocker la taille. Pour l’exemple, voici une table visites suivant cette idée :


CREATE TABLE visites (
  user_id int(11) NOT NULL DEFAULT '0',
  ip varchar(15) NOT NULL DEFAULT '',

[Lire plus]
UPDATE et SELECT sur la même table

Utiliser MySQL suppose de vivre avec certaines de ses limitations. Voici comment se débrouiller avec l’une d’entre elles : comment exécuter un UPDATE ou un DELETE sur une table sur laquelle on exécute en même temps un SELECT ?

Ce genre de situation peut se produire lorsqu’on souhaite mettre à jour un champ d’une table avec des données agrégées provenant de la même table. Pas clair ? Alors voici un exemple simple :

CREATE TABLE items (
  item_id int NOT NULL AUTO_INCREMENT,
  purchase_date date DEFAULT NULL,
  total int NOT NULL,
  total_month int NOT NULL,
  PRIMARY KEY (item_id)
);

INSERT INTO items (purchase_date,total) VALUES ('2010-12-01',10),
('2010-12-05',5),
('2010-10-10',14),
('2010-11-20',9),
('2010-10-09',3); …

[Lire plus]
Showing entries 1 to 5