Ich habe nie "if-else" oder "case" in einer SQL-Abfrage verwendet, aber ich denke, ich brauche diese Zeit. Ich habe eine Tabelle, deren Daten stellt so etwas wie ein Wettbewerb zwischen zwei Benutzern:MySQL: überprüfen, ob Daten in Abfrage vorhanden sind
//properties of "competition-table
int competitionId
int userId_Contrahent1
int userId_Contrahent2
otherdata....
Nutzer, die eine oder andere contrahent innerhalb dieses Wettbewerbs abstimmen; eine Abstimmung ist wie so dargestellt:
//properties of vote-table
int voteId
int competitionId
int userId_Voter
int userId_Winner // the user for which this vote counts
otherdata....
Offensichtlich kann jeder gegebenen Benutzer in meiner Webapplikation nur einmal stimmen für einen bestimmten Wettbewerb. Wenn ich also nach dem Wettbewerb frage, möchte ich auch die Information haben, wenn der currentUser (der die aktuelle Sitzung besitzt) bereits für diesen Wettbewerb gestimmt hat. Neben all den anderen Eigenschaften des Wettbewerbs möchte ich noch einen zusätzlichen haben, der einen Schlüssel wie "abgestimmt" und einen Wert wie "ja" oder "nein" hat. So sollte meine Select-Anweisung wie folgt aussehen ich denke:
SELECT competition.*,
If EXISTS (
SELECT * FROM vote WHERE userId_Voter = $currentUserId
AND competitionId = competition.competitionId)
...do something
FROM competition;
Wie kann ich tun, dass genau in MySQL?
um eine neue Spalte zu erstellen, führen Sie ALTER TABLE Tabellenname ADD Gruppenname tinyint(); – Breezer
@Breezer: Ich kann nicht für jeden vorhandenen Benutzer in meiner Webapp eine weitere Spalte zum Wettkampftisch hinzufügen !!!! –