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