Mysql中查询数据库中包含某个字段的所有表名
原创
©著作权归作者所有:来自51CTO博客作者翎野君_lingyejun的原创作品,请联系作者获取转载授权,否则将追究法律责任
背景
有一个商品的名称配置错误了,需要进行修改,但是涉及到的表太多了,因为商品的sku_name被冗余到了很多表中,一个一个的找非常的费事费力,特地记下便捷查询操作以备后用。
数据库SQL快捷查询
1.查询包含某个字段的所有表名
SELECT
DISTINCT table_name
FROM information_schema.columns
WHERE
table_schema = 'db_lingyejun' and column_name='sku_id';
2.查询同时含有两个字段的所有表名
SELECT
DISTINCT a.table_name
FROM information_schema.columns a,
information_schema.columns b
WHERE
a.table_name = b.table_name
and a.table_schema = 'db_lingyejun' and a.column_name='sku_id'
and b.table_schema = 'db_lingyejun' and b.column_name='sku_name';
3.拼接SQL动态生成针对此字段的所有更新语句
SELECT
CONCAT('UPDATE ', a.table_name, 'set sku_name = "IPHONE 13PRO" where sku_id = 1106;')
FROM information_schema.columns a,
information_schema.columns b
WHERE
a.table_name = b.table_name
and a.table_schema = 'db_lingyejun' and a.column_name='sku_id'
and b.table_schema = 'db_lingyejun' and b.column_name='sku_name';
本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。
作者:翎野君
如果您喜欢或希望看到更多我的文章,可扫描二维码关注我的微信公众号《翎野君》。
转载文章请务必保留出处和署名,否则保留追究法律责任的权利。