首页 > 解决方案 > 查找具有 %latin1% 值的数据库的所有列

问题描述

我怎么能做这个 SQL 查询?

名称数据库:database_1
列:排序规则
值:latin1_swedish_ci

我需要所有“database_1”表的列表,这些表的列的值包含文本%latin1%。

我的最终目标:我需要更改包含此数据的所有表中的这些值,例如:

CHARACTER SET latin1 COLLATE latin1_swedish_ci

改成:

CHARACTER SET utf8 COLLATE utf8_unicode_ci

我已经准备好更换咨询:

ALTER TABLE `blog_sitemapconf` CHANGE `value` `value` VARCHAR(100) CHARACTER SET latin1 COLLATE latin1_english_ci NOT NULL DEFAULT '';

但我需要获取所有包含列的表的名称

CHARACTER SET latin1 COLLATE latin1_swedish_ci

标签: mysqlsqlselectcollationdata-dictionary

解决方案


您可以从information_schema.columns表中查询此信息:

SELECT table_name, column_name
FROM   information_schema.columns
WHERE  collation_name LIKE '%latin1%'

推荐阅读