Mysql 在exec之前编辑查询子句(SQL解决方案)

Mysql 在exec之前编辑查询子句(SQL解决方案),mysql,sql,symfony,Mysql,Sql,Symfony,我有一个基于数据库中产品表的长列表API调用,今天我们想向这个表中添加一个子产品(添加一个新表或一个自反关系) 但是我们需要避免编辑所有API的调用/查询,Mysql下是否有任何解决方案可以在执行查询之前编辑查询的子句?实际上没有直接回答您的问题,但可能还是有帮助的 您可以创建一个类似于虚拟表的视图。例如,如果你有表格 product(id, attr1) subproduct(id, subattr1, subattr2) 您可以创建如下视图: CREATE VIEW legacy_prod

我有一个基于数据库中产品表的长列表API调用,今天我们想向这个表中添加一个子产品(添加一个新表或一个自反关系)


但是我们需要避免编辑所有API的调用/查询,Mysql下是否有任何解决方案可以在执行查询之前编辑查询的子句?

实际上没有直接回答您的问题,但可能还是有帮助的

您可以创建一个类似于虚拟表的视图。例如,如果你有表格

product(id, attr1)
subproduct(id, subattr1, subattr2)
您可以创建如下视图:

CREATE VIEW legacy_products AS
SELECT
  p.id, p.attr, s.subattr
FROM
  products p LEFT JOIN subproducts s ON p.id = s.id
如果仔细定义视图,可以避免对API调用的长列表进行更改。但仅当它们仅包含
SELECT
查询时。可以使视图可更新,但对于两个或多个基表上的视图(如示例中所示),这通常不是真的

SQLFiddle用于玩: 有关视图定义,请参见以下内容: