我有一个这样的帖子表:

-----帖子-----
- ID
-..等等
-类别1
-类别2
-类别3

这些类别中的任何一个都可以被过滤掉,而我正计划构建如下的SQL语句:

SELECT *
  FROM posts
 WHERE category1='..sth..'
   AND category1='..sth..'
    OR category1='..sth..'
    OR category2='..sth..'
    OR category3='..sth..'
   AND category3='..sth..'
   OR ..."


这是不好的做法吗,会不会有性能问题?

编辑:我给出的查询的AND和OR语句仅作为示例。

最佳答案

如果您的数据库设计合理,那么可以,这不是一个坏习惯,实际上是选择数据的理想方法。
最好的办法是考虑如何使用您的数据,并设计存储以使其易于访问您最需要的数据。
这里有很多关于数据库设计细节的文章。

您建议的SQL是荒谬的(使用方括号),但我怀疑您仅打算将其用作示例。

关于mysql - 对于MySQL而言,使用AND&OR语句是否太糟糕了?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18836607/

10-12 12:50