Я никогда не использовал "if-else" или "case" внутри sql-запроса, но, думаю, мне нужно на этот раз.У меня есть таблица, данные которой представляют собой что-то вроде соревнования между двумя пользователями:
//properties of "competition-table
int competitionId
int userId_Contrahent1
int userId_Contrahent2
otherdata....
Пользователи могут голосовать за одну или другую контрагенту в рамках этого соревнования;голос представляется следующим образом:
//properties of vote-table
int voteId
int competitionId
int userId_Voter
int userId_Winner // the user for which this vote counts
otherdata....
Очевидно, что каждый пользователь в моем веб-приложении может проголосовать только один раз за любой данный конкурс.Поэтому, когда я запрашиваю конкурс, я также хочу получить информацию, если currentUser (который владеет текущей сессией) уже проголосовал за этот конкурс.Таким образом, в дополнение ко всем другим свойствам конкуренции, мне нравится иметь еще одно свойство, которое имеет ключ типа «проголосовал» и значение «да» или «нет».Так что мое предложение select должно выглядеть примерно так:
SELECT competition.*,
If EXISTS (
SELECT * FROM vote WHERE userId_Voter = $currentUserId
AND competitionId = competition.competitionId)
...do something
FROM competition;
Как мне сделать это именно в MySQL?