2009-09-11 9 views
7

J'utilise MySQL, j'ai une table qui a 9 colonnes. L'un d'eux est la clé primaire.Sélection d'une seule ligne dans MySQL

Comment puis-je sélectionner une seule ligne, par la clé primaire ou la colonne 8 ou 4?

+0

sélectionnez une seule ligne: 'select * from yourtable limit 1;' –

Répondre

18

Si je comprends bien votre question:

SELECT * FROM tbl WHERE id = 123 OR colname4 = 'x' OR colname8 = 'y' LIMIT 1 

Le 'LIMIT' keyword se assure qu'il n'y a qu'une seule ligne retournée.

+0

Cela m'aidera plus tard sur la route, merci! – aggitan

+0

Cependant, "MySQL ne supporte pas LIMIT dans les sous-requêtes pour certains opérateurs de sous-requêtes". Reportez-vous à [Restrictions sur les sous-requêtes] (https://dev.mysql.com/doc/refman/5.5/fr/subquery-restrictions.html). –

3
select * 
from MyTable 
where MyPrimaryKey = 123 
+0

Cela fonctionne, merci. – aggitan

0

Les colonnes SQL n'ont pas d''ordre' défini. Les systèmes de base de données gardent généralement la trace d'une commande à des fins d'affichage, mais cela n'a aucun sens de demander à une base de données de sélectionner une colonne par numéro. Vous devez connaître le nom de la colonne pour pouvoir interroger son contenu.

La même chose vaut pour la clé primaire (qui, incidemment, peut ne pas être une seule colonne). Vous devez savoir de quelle colonne il s'agit et de quelle colonne il est nommé, afin d'exécuter une requête.

Si vous ne connaissez pas ces choses, ou besoin de les comprendre de façon dynamique, puis

DESCRIBE tablename; 

vous dira les noms de chaque colonne, et si elle fait partie de la clé primaire ou non. Il retournera une table que vous pouvez lire, comme n'importe quel autre résultat.

Questions connexes