mysql-using find \u in \u set on multiple tables without relations在没有关系的多个表上查找\u

cyvaqqii  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(269)

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

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(products表)的列表,它们还没有列在ptypeof categories表中
所以结果是

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

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

3qpi33ja

3qpi33ja1#

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

相关问题