MySQL可以强制执行全局WHERE子句和/或它们是否存在?

时间:2012-10-26 15:55:19

标签: mysql

我想我知道答案,但无论如何我想问社区。

想象一下两个表:

表A

ID    |    Col1    |    isActive
1       "Some Data1"     1
2       "Some Data2"     1
3       "Some Data3"     0
4       "Some Data4"     1

表B

ID    |    TableA_ID    |    isActive
1          1                 1
4          1                 1
7          3                 1
8          4                 1

以下查询:

SELECT A.COL1
FROM TableB as B
JOIN TableA as A
  ON A.ID = B.TableA_ID
WHERE b.ID in (1,4,7);

这将返回这些结果:

    Col1
"Some Data1"
"Some Data1"
"Some Data3"

但我想要的是:

    Col1
"Some Data1"
"Some Data1"

我不想在每个连接和每个where子句中添加“WHERE isActive = 1”条件。像许多其他人一样,我们不喜欢删除记录的想法。但是,为每个查询添加“WHERE isActive = 1”是非常繁琐和重复的。

所以问题是:

我可以对我的数据库进行的所有查询强制执行此类“全局条件”吗?有没有人想过这个?

1 个答案:

答案 0 :(得分:2)

您可以通过创建VIEW来模拟“全局条件”,否则......在MySQL中没有这样的东西。