Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL能否强制执行全局WHERE子句和/或它们是否存在?_Mysql - Fatal编程技术网

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

MySQL能否强制执行全局WHERE子句和/或它们是否存在?,mysql,Mysql,我想我知道这个问题的答案,但我想问问社区 想象两张桌子: 表 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

我想我知道这个问题的答案,但我想问问社区

想象两张桌子:

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”是非常繁琐和重复的

因此,问题是:


我可以在对数据库的所有查询上强制执行这种“全局条件”吗?还有人对此感到好奇吗?

你可以通过创建一个模型来模拟“全局条件”,但除此之外。。。MySQL中没有这样的东西。

这可能是一个视图。在Oracle中,这是一个行级安全谓词(可能)。或者使用触发器将非活动行移动到存档表中。