2016-07-26 8 views
0

私は1,2,3,4,5,6または3,4,6または25,4,7,8のような値が複数の行に含まれているmysqlのテーブルmethodologyを持っています。どのように一致するMySQLの文字列の値PHP

私のシナリオで私はID 6を含む会社があり、この値を方法論テーブルの値と一致させたいと思います。しかし、私はどのようにそれを行うことができるのか分かりません。

私はまず、方法論のテーブルからすべての値を取得し、その値を会社の一致した値の1つ後に取得しようとしています。

誰でも私を助けてくださいできますか?

+0

あなたのテーブルは正しく正規化されていませんが、ほとんどの場合はカンマ区切りの値をカラムに格納するのが大丈夫ですが、検索する必要はありません。 – e4c5

答えて

0

使用LIKE MySQLのクエリから:

クエリは、参照してください。機能の詳細については

SELECT * FROM 
methodology 
where FIND_IN_SET(your_id, columnname) 

のようになります。

例: SELECT row FROM my_table WHERE my_column LIKE %6%

+1

リストに「66」のような値が含まれていて、そこに「6」がない場合はどうなりますか? – 1000111

+0

あなたは@ 1000111の権利を持っています。この場合正確です。 –

0

を使用する必要があります。

SELECT * FROM methodology WHERE companies LIKE '%,6,%' OR companies LIKE '6,%' OR companies LIKE '%,6' 

これは、すべての行に一致します。companiesはその値が,6,であるか、6,で始まるか、または,6で終わる。

これは完璧な解決策ではありません(コードと実行時間の明確さの両方で)、私はオプションをリストしています。

+0

そして '6'がリスト内の唯一の要素ならどうなりますか? – 1000111

+0

これは考えていませんでしたが、リクエストの最後に 'OR企業= '6' 'を追加するだけです。 – roberto06

関連する問題