MySQL - 在没有关系的多个表上使用 FIND_IN_SET

MySQL - Using FIND_IN_SET on Multiple Tables with No Relation

我的数据库结构如下所示: 数据库名称:产品

id ptype
1  Cups
2  Shirts
3  Cups
4  Mugs
5  Fabric
6  Mat

数据库名称:类别

id category ptype
1  Clothes  Pants, Shirts, Tshirts
2  Other    Mugs, Cups

我想获取尚未在类别的 ptype 中列出的不同 ptype(产品 table)的列表 table

所以结果会是

ptype
Fabric
Mat

我尝试使用以下 mysql select 查询,但它似乎不起作用

SELECT p.ptype, c.ptype, FIND_IN_SET(p.ptype,c.ptype) FROM products as p, categories as c WHERE FIND_IN_SET(p.ptype,c.ptype) < 1

returns FIND_IN_SET 的所有 ptype 产品 table 的值为 0。

删除 categories.ptype 字段中逗号后的 space 以使查询有效。 find_in_set() 将指针与逗号分隔值列表进行比较,并认为逗号后的 space 是它搜索的字符串的一部分,因此如果您搜索的字符串符合不包含 spaces.