Bonjour tout le monde.

Je cherche à savoir si il est possible de faire un Select avec une clef primaire sur plusieurs colonnes

C'est a dire:


Voici une table d'exemple fictive:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE IF NOT EXISTS `MaTable` (
  `Id_Societe` int(9) unsigned NOT NULL,
  `Id_Type` varchar(40) collate utf8_unicode_ci NOT NULL,
  `Id_Photo` int(9) unsigned NOT NULL  ,
  `Id_PhotosAlbum` int(9) unsigned NOT NULL,
  `Id_SizeMode` varchar(40) collate utf8_unicode_ci NOT NULL,
 
  `NomFichier` varchar(255) collate utf8_unicode_ci NOT NULL,
  `PoidsOct` int(8) unsigned default NULL,
  `Width` int(4) unsigned default NULL,
  `Height` int(4) unsigned default NULL,
  `DateMake` timestamp NOT NULL default '0000-00-00 00:00:00',
  `DateModif` timestamp NOT NULL default '0000-00-00 00:00:00',
 
  PRIMARY KEY  (`Id_Societe`,`Id_Type`, `Id_Photo`,`Id_PhotosAlbum`, `Id_SizeMode`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci  ;
Admettons que je souhaite récupérer les informations d'une ligne dont j'ai la clef primaire

D’habitude je procède ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM `MaTable` WHERE `Id_Societe` = 'MaValeur1' AND  `Id_Type`  = 'MaValeur2' AND  `Id_Photo`  = 'MaValeur3' AND  `Id_PhotosAlbum` = 'MaValeur4' AND  `Id_SizeMode`  = 'MaValeur5';
Cette requette me retourne une seule ligne et c'est normal, de plus c'est ce que je cherche à faire...

Ce que j'aimerais savoir c'est si il est possible de travailler directement sur la clef primaire

Voici un exemple:
Cet exemple et faux je le sais bien mais je cherche un equivalent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM `MaTable` WHERE  PRIMARY KEY = ( 'MaValeur1','MaValeur2','MaValeur3','MaValeur4','MaValeur5') ;
Ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM `MaTable` WHERE  PRIMARY KEY = 'Une forme normalisé de la cléf' ;