Je n'ai jamais utilisé "if-else" ou "case" dans une requête sql, mais je suppose que j'ai besoin de cette fois. J'ai une table dont les données représente quelque chose comme une compétition entre deux utilisateurs:MySQL: vérifier si les données existent dans la requête
//properties of "competition-table
int competitionId
int userId_Contrahent1
int userId_Contrahent2
otherdata....
Les utilisateurs peuvent voter pour l'un ou l'autre contrahent dans cette compétition; un vote est représenté comme ceci:
//properties of vote-table
int voteId
int competitionId
int userId_Voter
int userId_Winner // the user for which this vote counts
otherdata....
Il est évident que chaque utilisateur donné dans mon WebApplication ne peut voter qu'une seule fois pour une compétition donnée. Donc, quand je demande pour la compétition, je veux aussi avoir l'information si l'utilisateur actuel (qui possède la session en cours) a déjà voté pour ce concours. Donc en plus de toutes les autres propriétés de la concurrence, j'aime en avoir une de plus, qui a une clé comme "voté" et une valeur comme "oui" ou "non". Donc, mon instruction select devrait ressembler à quelque chose comme cela, je suppose:
SELECT competition.*,
If EXISTS (
SELECT * FROM vote WHERE userId_Voter = $currentUserId
AND competitionId = competition.competitionId)
...do something
FROM competition;
Comment puis-je faire exactement dans MySQL?
pour créer une nouvelle colonne ALTER TABLE nom_table ADD nom_cloud tinyint(); – Breezer
@Breezer: Je ne peux pas ajouter pour chaque utilisateur existant dans mon webapp une autre colonne à la table de compétition !!!! –