微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL JOIN的FIND_IN_SET

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