我有一个表,它有很多不同的查询。
我想添加一个功能,允许我基本上禁用指定的行,这样它们就不会出现在网站上的任何地方。
现在,最明显的解决方案是创建一个新的列,并将“AND ACTIVE=TRUE”添加到网站上的每个SELECT查询中。然而,有太多不同的SELECT查询,所以搜索每一个查询是非常不实际的。我一定会错过一些。
有没有更实用的方法来禁用行?

最佳答案

考虑创建一个视图,该视图选择表中的所有列,但在按照您在问题中的建议创建ACTIVE = TRUE列之后应用条件ACTIVE。如果重命名原始表并使用该表的前一个名称创建视图,则可以在应用程序中继续无缝地使用该表,并应用新的限制条件。

CREATE VIEW the_table_name AS (
  SELECT
    col1,
    col2,
    col3
  FROM the_renamed_table
  WHERE ACTIVE = TRUE
);

如果性能似乎无法扩展,则可能需要在ACTIVE列上添加索引。

关于php - MySQL-我可以防止选择行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25248247/

10-12 12:40
查看更多