MySQL JOIN的FIND_IN_SET

问题描述

我想使用JOIN优化FIND_IN_SET查询。

今天我有一个“页面”表:

id | title | classification
1  | ABC   | NULL
2  | DEF   | Admin,Public,Author
3  | GHI   | Admin

所有用户都具有“管理员”或“作者”之类的属性...

示例:

$myClassifications = array("Admin","SuperAdmin");

我选择了所有页面,其中“用户”的分类是“页面”的分类。还会选择“公共”页面和没有分类的页面:

SELECT * FROM pages WHERE FIND_IN_SET("Admin",classification) OR FIND_IN_SET("Super",classification) OR classification is NULL OR FIND_IN_SET("Public",classification)

现在,我想优化查询并使用JOIN。像这样...

页表:

id | title 
1  | ABC  
2  | DEF  
3  | GHI  

PageClassification表: id | pageId |分类 1 | 1 |管理员 2 | 1 |上市 3 | 1 |作者

如何更改SELECT来查找所有具有“公共”页面或用户分类数组中的键之一或没有分类记录的页面?

下一步:

$myClassifications = array("Admin" => "1","Age" => "21");

PageClassification表:

id | pageId | classification | value
1  | 1      | Admin          | =1
2  | 1      | Public         | =1
3  | 1      | Author         | =1
4  | 1      | Age            | >=21

如何更改SELECT来查找所有具有键“ Public”且值为1或用户分类数组中的键/值对之一或没有分类记录且用户年龄大于21岁的页面?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...