如何执行此sql查询?
名称数据库:数据库1
列:排序规则
值:拉丁文1\u瑞典语\u ci
我需要所有“database_1”表的列表,这些表的列的值包含文本%1%。
我的最终目标是:我需要更改包含此数据的所有表中的这些值,例如:
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
2条答案
按热度按时间13z8s7eq1#
首先,确定如何进行字符集转换。如果表格正确编码为拉丁文1,则这是所需的转换:
相反,如果utf8字节存储在latin1列中,那么“fix”就更复杂了。
然而,这一切都改变了
CHAR
/TEXT
表中的列。可以吗?如果这是确定的,那么这将生成所有
ALTERs
.然后可以将它们复制/粘贴到mysql命令行工具中。
如果只需要更改单个列,那么修复是困难的,因为每个列的其余属性必须重复。这在查询中不容易做到。
5t7ly7z52#
您可以从
information_schema.columns
表格: