0

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

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 (产品表)的列表

所以结果是

ptype
Fabric
Mat

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

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

对于 products 表的所有 ptypes,它将 FIND_IN_SET 的值返回为 0。

4

1 回答 1

1

删除字段中逗号后的空格categories.ptype以使查询正常工作。find_in_set() 将指针与逗号分隔值列表进行比较,并将逗号后面的空格视为它搜索的字符串的一部分,因此如果搜索不包含空格的字符串,则找不到匹配项。

于 2016-10-06T12:42:27.197 回答