如何解决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 举报,一经查实,本站将立刻删除。