2016-12-28 21 views
0
SELECT * FROM users WHERE uid IN (SELECT doctors FROM MainPage WHERE Valid=1) 

ユーザテーブルuid datatype=INT、メインページテーブル医師datatype=text Iは、上記のクエリを実行していた場合、それだけで1行を得ている1,2,3,4,5-のMySQL文字列に値を持つ

としてこれはuid=1です。ユーザーテーブルから5行すべてを取得できる他の演算子ORクエリの変更はありますか?

+1

ユーザーテーブルにID 1,2,3,4,5の行がありますか? – GurV

+0

サブクエリの出力は何ですか? – Jordon

答えて

3

FIND_IN_SET()関数は、カンマ区切りリストで値を検索します。 JOINとそれを組み合わせて、あなたが望む結果を得る必要があります。

SELECT * 
    FROM users 
    JOIN MainPage ON FIND_IN_SET(uid, doctors) 
WHERE Valid = 1; 

FYI、これはあなたのテーブルを設計する間違った方法です。各接続は別々の行に定義する必要があります。多対多の関係の場合は、複合キーを持つ別のテーブルが必要になります。

+1

ありがとうshmosel、それは完璧に働いた:) – Oggu

+0

@Ogguそれはあなたのために働く場合は、答えを受け入れてください。 – Jordon

+0

SQLサーバDBで同じ出力を達成しなければならない場合は、同等の演算子がありますか?任意のmysqlバージョンに固有のFIND_IN_SET()ですか? – Oggu

関連する問題