SQLクエリの中で "if-else"や "case"を使ったことはありませんでしたが、今回は必要です。 私は、データが二人のユーザ間の競争のようなものを表しているテーブルがあります。MySQL:クエリ内にデータが存在するかどうかを確認してください
//properties of "competition-table
int competitionId
int userId_Contrahent1
int userId_Contrahent2
otherdata....
したユーザー競争内の1つまたは他のcontrahentに投票することができます。投票はそうのように表される:
//properties of vote-table
int voteId
int competitionId
int userId_Voter
int userId_Winner // the user for which this vote counts
otherdata....
明らかに私のwebアプリケーション内のすべての与えられたユーザーは、任意の競争のために一回投票することができます。したがって、私が競技会を照会するとき、私は現在の(現在のセッションを所有している)ユーザーが既にこの競技会に投票した場合にも情報を得たいと思っています。だから、競争の他のすべてのプロパティに加えて、私は追加のものを持っているように、それは "投票"のようなキーと "はい"または "いいえ"のような値を持っています。
SELECT competition.*,
If EXISTS (
SELECT * FROM vote WHERE userId_Voter = $currentUserId
AND competitionId = competition.competitionId)
...do something
FROM competition;
は、どのように私はその正確MySQLで行うのです: だから私のselect文は、私は推測する。このようになるはずですか?
新しい列を作成するには、ALTER TABLE tablename ADD cloumnname tinyint();を実行します。 – Breezer
@ブリーツァー:私のwebapp内の既存のすべてのユーザーのために、別の列を競合表に追加することはできません。 –