我的数据库结构如下所示: 数据库名称:产品
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查询,但它似乎无法正常工作
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
对于所有产品ptypes表,它将FIND_IN_SET的值返回为0。
答案 0 :(得分:1)
删除// reading png bytes from file
FILE *fp = fopen("./test/resources/RGBA_8bits.png", "rb");
// get file size from file info
struct stat finfo;
fstat(fileno(fp), &finfo);
pngDataLength = finfo.st_size;
pngData = malloc(sizeof(unsigned char)*pngDataLength);
if( fread(pngData, 1, pngDataLength, fp) != pngDataLength) {
fprintf(stderr, "%s: Incorrect number of bytes read from file!\n", __func__);
fclose(fp);
free(pngData);
return;
}
fread(NULL, 1, 1, fp);
if(!feof(fp)) {
fprintf(stderr, "%s: Not the whole binary file has been read.\n", __func__);
fclose(fp);
free(pngData);
return;
}
fclose(fp);
字段中逗号后面的空格以使查询有效。 find_in_set()将指针与逗号分隔值列表进行比较,并将逗号后的空格视为其搜索的字符串的一部分,因此如果搜索不包含空格的字符串,则不会找到匹配项。