mysql 查找包含某些字段且不包含另一些字段的表

来源:互联网 发布:北上广 知乎 编辑:程序博客网 时间:2024/04/30 08:36

DROP TABLE IF EXISTS temp1,temp2; 
CREATE TEMPORARY TABLE temp1 
SELECT DISTINCT table_name FROM information_schema.columns a WHERE column_name IN 
('category_l3_name', 
'layout_category_l3_name','erp_category_l3_name') 
and table_schema='bi'



CREATE TEMPORARY TABLE temp2 
SELECT DISTINCT table_name FROM information_schema.columns b 
WHERE column_name IN 

'category_l2_append_key','layout_category_l2_append_key',
'layout_category_l2_append_name','category_l2_append_name' 

and table_schema='bi'



SELECT table_name,column_name
,CONCAT('alter table ',table_name,' add category_l2_append_name varchar(100) AFTER ',column_name,';
','alter table ',table_name,' add category_l2_append_key varchar(30) AFTER ',column_name,';') AS sqltext
FROM 
(
SELECT a.table_name,min(c.column_name) as column_name
 FROM temp1 a JOIN information_schema.columns c
 ON a.table_name=c.table_name AND c.column_name IN 
('category_l3_name', 
'layout_category_l3_name','erp_category_l3_name')
and c.table_schema='bi'
WHERE a.table_name NOT IN 
(SELECT table_name FROM temp2 ) 
group by  a.table_name
)
aa
ORDER BY table_name,column_name

0 0
原创粉丝点击