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.
我的数据库结构如下所示: 数据库名称:产品
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.