如果存在,如何在mysql中执行一个执行几个表中的句子的查询。例如:
我可以使用以下表格:w_extra_content,w_extra_content_gl,w_extra_content_dn。
有没有办法运行类似的东西:
update name = "example" from w_extra_content * where name = "old_example"
并且在与名称匹配的所有表上执行查询?
在表格中只会改变最终的完成情况,但您可能不知道终止是在数据库中。
它只能在mysql中。
答案 0 :(得分:1)
使用以下查询
SET @@group_concat_max_len = 1000000;
SET @query := (SELECT GROUP_CONCAT(CONCAT_WS(' ','update ',TABLE_NAME,' set name = \'example\' where name = \'old_example\'')
SEPARATOR ';')
FROM
( SELECT Table_NAME
FROM information_schema.tables
WHERE TABLE_NAME LIKE 'w_extra_content%') tab);
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt ;
SET @@group_concat_max_len = 1024;