如果数据在latin8中,Mysql只会更新

时间:2015-05-30 19:50:01

标签: php mysql utf-8

我有这个声明在第一次运行中起作用

UPDATE accounts SET username = CONVERT(CAST(CONVERT(username USING latin1) AS BINARY) USING utf8)

这会将latin1字符转换为mysql中的UTF8中文字符。

运行第二次,角色会变得怪异。

我如何添加 where condition ,如果该字词当前位于latin1,则只会从latin1更新用户名为utf8

1 个答案:

答案 0 :(得分:0)

列的CHARACTER SET是多少?如果它仍然是latin1,那么你会遇到很多麻烦。

声明为latin1且包含latin1字节的表可以通过

转换为utf8
ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;

之后(并假设您已正确设置SET NAMES),文本将在插入时转换为utf8。不需要旗帜;不需要第二次通过;等