-4

php と mysql で複数キーワード検索を使用する方法

このような製品テーブルがあります

キーワード フィールドはキーワード ID を保存します

| id | name  | keyword_ids |
|112 | apple | 123,12,421,121|
|113 | phone | 23,14,12,1    |

そして、このようなキーワードテーブル

|id | name |
|1 | white |
|2 | eat   |

製品キーワード フィールドを使用して類似製品を見つけたいのですが、どうすればよいですか?

4

1 に答える 1

0

このデータ構造を使用することに設定されている場合は、使用できますFIND_IN_SET

SELECT * FROM `products` p
LEFT JOIN `keyword` k ON FIND_IN_SET(k.`id`, p.`keyword_ids`)
WHERE k.`name` IN (?,?,?)

私がお勧めするのは、実際には製品をキーワードにリンクする多対多の関係テーブルからです。

product_has_keyword

product_id | keyword_id
------------------------
112        | 123
112        | 12
112        | 421
112        | 121

そうすれば、結合にインデックスを使用できます(はるかに高速になります)

于 2013-08-03T04:50:52.323 に答える