Я никогда не использовал «if-else» или «case» внутри sql-запроса, но, похоже, мне нужно это время. У меня есть таблица, данные которой представляет собой нечто вроде соревнования между двумя пользователями:MySQL: проверьте, существуют ли данные внутри запроса
//properties of "competition-table
int competitionId
int userId_Contrahent1
int userId_Contrahent2
otherdata....
Пользователи могут голосовать за одного или другого contrahent в рамках этого конкурса; голосование представлена следующим образом:
//properties of vote-table
int voteId
int competitionId
int userId_Voter
int userId_Winner // the user for which this vote counts
otherdata....
Очевидно каждый данный пользователь в моем WebApplication можно только один раз для любого данного конкурса. Поэтому, когда я запрашиваю конкурс, я также хочу получить информацию, если текущий участник (который владеет текущим сеансом) уже голосовал за этот конкурс. Поэтому в дополнение ко всем другим свойствам конкурса мне нравится иметь дополнительный, который имеет такой ключ, как «проголосовали» и значение «да» или «нет». Так что мой выбор заявление должно выглядеть примерно так я думаю:
SELECT competition.*,
If EXISTS (
SELECT * FROM vote WHERE userId_Voter = $currentUserId
AND competitionId = competition.competitionId)
...do something
FROM competition;
Как я могу это сделать именно в MySQL?
Чтобы создать новый столбец, вы делаете ALTER TABLE tablename ADD cloumnname tinyint(); – Breezer 2010-12-03 03:58:07
@Breezer: Я не могу добавить для каждого существующего пользователя в моем webapp еще один столбец на стол для соревнований !!!! – 2010-12-03 04:12:21