2016-10-26 15 views
-1

これは私のテーブル構造です。MYSQL:複数の検索条件に一致するものを返します

enter image description here

は、しかし、私は、検索条件に一致した行を知っている必要があります。

は、私は次のように与えられる、クエリのような、

SELECT `user_pid` from `table` WHERE 
`upchain` LIKE '%,33,%' OR `upchain` LIKE '%,52,%' OR upchain LIKE '%,98,%' 

結果があります。 は、次のような結果を取得する方法はあります:

user_pid | search_critetis 
-------------------------- 
    33  | ,33, 
    52  | ,52, 
    98  | ,98, 
    100 | ,98, 
    101 | ,98, 
+4

本当にテーブルデザインを変更する必要があります。複数の値を1つの列に格納しないでください –

+0

@juergend:うん、わかっている。 1つの特定のタスクのためにこのテーブルを作成しなければなりませんでした。これは私のメインテーブルではありません。 – kadamb

+0

@kadamb私たちは問題を解決できますか? – rbr94

答えて

0

あなたは

SELECT `user_pid` ,'%,33,%' from `table` WHERE 
`upchain` LIKE '%,33,%' 
union all 
SELECT `user_pid` ,'%,52,%' from `table` WHERE 
`upchain` LIKE '%,52,%' 

としてクエリを書き直すことができます可能な場合もCASE WHENを使用してみてくださいcase

0

を使用してクエリを書き直すことができます。

SELECT user_pid, 
     CASE WHEN upchain LIKE '%,33,%' THEN ',33,' ELSE 
     CASE WHEN upchain LIKE '%,52,%' THEN ',52,' ELSE 
     CASE WHEN upchain LIKE '%,98,%' THEN ',98,' END END END as upchain 
FROM table 
WHERE upchain LIKE '%,33,%' OR upchain LIKE '%,52,%' OR upchain LIKE '%,98,%' 
0
SELECT 
user_pid, 
IF(upchain LIKE '%,33,%', '%,33,% condition' , 
    IF(
     upchain like '%,52,%', '%,52,% condition', 
     IF(
      upchain like '%,98,%', '%,98,% condition', 
      'other condition' 
     )    
    ) 
) 
as condition from table 

この構文を使用して、複数の条件を好きなように追加できます。

IF('your condition', << true part >>, "another condition OR elase part") 
関連する問題