6桁～8桁の数列の中に5桁の数列が入っているか調べたい


初めて質問させていただきます。

現在、Excelで書かれている数式を、Python+SQLで代用し、PHPで表示するという  
プロジェクトを行っています。(脱Excelを目指しています)

その途中で引っかかった問題なのですが  
6～8桁の数列の中に、5桁の数列が含まれるかどうか調べる方法が分かりません。  
(1～5桁はできています)

例として、以下のような数列が定義されているとします。

1 | 2 | 3 | 4 | 5 | 6

この数列の中に

5 | 7 | 11 | 9 | 4

が全て含まれている場合、Trueとする。  
という計算を行っています。  
Excelでの記述の場合は

[code]

    IF(
        AND(
            OR(5=1, 7=1, 11=1, 9=1, 4=1),
            OR(5=2, 7=2, 11=2, 9=2, 4=2),
            OR(5=3, 7=3, 11=3, 9=3, 4=3),
            OR(5=4, 7=4, 11=4, 9=4, 4=4),
            OR(5=5, 7=5, 11=5, 9=5, 4=5
        )
    ,0,1)
    
[/code]

です。これをPython+SQLで記述しようとして

[code]

        query = "select id from mst_nin_%s where " % (suffix)
        if (suffix == 's8'):
            for v in range(1, 6):
                if (v != 1):
                    query += " AND "
                varname = "num" + str(v);
                query += "'%s' in (num1, num2, num3, num4, num5, num6, num7, num8)" % (eval(varname))
    
        elif (suffix == 's7'):
            for v in range(1, 6):
                if (v != 1):
                    query += " AND "
                varname = "num" + str(v)
                query += "'%s' in (num1, num2, num3, num4, num5, num6, num7)" % (eval(varname))
        elif (suffix == 's6'):
            for v in range(1, 6):
                if (v != 1):
                    query += " AND "
                varname = "num" + str(v)
                query += "'%s' in (num1, num2, num3, num4, num5, num6)" % (eval(varname))
    ...
    
[/code]

というPythonコードを準備し、SQLを生成しました。以下の通りです。

[code]

    select id from mst_nin_s6 where
     '5' in (num1, num2, num3, num4, num5, num6) AND
     '7' in (num1, num2, num3, num4, num5, num6) AND
     '11' in (num1, num2, num3, num4, num5, num6) AND
     '9' in (num1, num2, num3, num4, num5, num6) AND
     '4' in (num1, num2, num3, num4, num5, num6)
    
[/code]

その後、PHPで存在するかどうかのSQLを実行しました  
SQLは以下の通りです。

[code]

    select
    group_concat(distinct(mb.num1) SEPARATOR ',') as num1,
    group_concat(distinct(mb.num2) SEPARATOR ',') as num2,
    group_concat(distinct(mb.num3) SEPARATOR ',') as num3,
    group_concat(distinct(mb.num4) SEPARATOR ',') as num4,
    group_concat(distinct(mb.num5) SEPARATOR ',') as num5,
    group_concat(distinct(mb.num6) SEPARATOR ',') as num6
    from input_nin_s6 as ib join mst_nin_s6 mb on ib.nin_s6_id REGEXP CONCAT('(^|,)', mb.id, '(,|$)')
    group by ib.id
    
[/code]

実行すると以下の結果が帰ってきます。  
[![SQL実行結果](https://i.stack.imgur.com/3eY8q.png)](https://i.stack.imgur.com/3eY8q.png)

このとき、全く関係ない10が帰ってきています。

なぜ10が帰ってくるのか不明です。わかる方、教えていただけませんでしょうか。

よろしくおねがいします。



[code]

    select id from mst_nin_s6 where
    '5' in (num1, num2, num3, num4, num5, num6)
    
[/code]

のin句の使い方ですが  
カラム名 in (値1,値2...)  
が通常だと思うのですが

ご提示のように  
値 in (カラム名1,カラム名2...)  
のような使い方はちょっと把握しておりません。  
phpでなくpython上でのqueryの返却結果が正常か確認されてみてはいかがでしょうか。

また、最初のExcelの例ですがセルに5|5|5|5|5等と入っていた場合も真となってしまい  
そもそもの期待値が誤っているのではないかと思います。

