parts
データベースにとの 2 つのテーブルがありますproducts
。products
テーブルに ID の文字列 (カンマ区切り) を含む列があります。これらの ID は、パーツ テーブルの ID と一致します。
**parts**
ID | description (I'm searching this part)
-------------------------------
1 | some text here
2 | some different text here
3 | ect...
**products**
ID | parts-list
--------------------------------
1 | 1,2,3
2 | 2,3
3 | 1,2
私はこれに関するSQLクエリに本当に苦労しています。最初の部分を完了し、パーツ テーブルから ID を取得しました
SELECT * FROM parts
WHERE description
LIKE '%{$search}%'
最大の問題は、説明列のコンマ区切り構造です。
明らかに、私は PHP でそれを行うことができ、部品テーブルからの結果の配列を作成し、それを使用して製品テーブルで ID を検索し、それらの結果を使用して部品テーブルから行データを (再び) 取得します。あまり効率的ではありません。
私もこれを試しましたが、明らかにここで2つの配列を比較しようとしています.これをどのように行うべきかわかりません.
SELECT * FROM `products` WHERE
CONCAT(',', description, ',')
IN (SELECT `id` FROM `parts` WHERE `description` LIKE '%{$search}%')
誰でも助けることができますか?