修改表语句
媒介
修改字符集
- ALTER TABLE `config` MODIFY COLUMN `key` varchar(255) BINARY NOT NULL;
以config表为例, 表内数据:
key value id email 295697141@qq.com 1 username 我 2
SQL语句:
- SELECT `key`, `value` FROM `config` WHERE `key` IN ('username', 'email');
履行结不雅:
key value email 295697141@qq.com username 我
明明是username 优先于 email, 结不雅倒是 email优先于 username. 原因在于 IN 萌芽只负责萌芽, 不负责排序, 而默认排序是用 id asc, 所以获得了一个不相符IN萌芽的结不雅
解决筹划
- 应用 ORDER BY FIELD()
- 应用 ORDER BY FIND_IN_SET()
- SELECT `key`, `value` FROM `config` WHERE `key` IN ('username', 'email') ORDER BY FIELD('key','username', 'email');
或者
- SELECT `key`, `value` FROM `config` WHERE `key` IN ('username', 'email') ORDER BY FIND_IN_SET(`key`,'username,email');
最终履行结不雅:
key value username 我 email 295697141@qq.com留意: FIND_IN_SET 第二个参数 strlist 逗号之间不须要空格
SELECT 存储萌芽冷僻汉字, 结不雅乱码 ?
前提,数据库和表都是采取的是utf8字符集.
- INSERT INTO `config` (`key`,`value`,`id`) VALUES ('word', '𠂤', 7);
萌芽SQL:
- SELECT * FROM `config` WHERE `key` = 'word' LIMIT 1;
履行结不雅:
value key id word ???? 7推荐阅读
BlackBerry高级副总裁KaivanKarimi:营造汽车行业安全文化
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 【51CTO.com原创稿件】移动设备、物联网的快速成长为人们的生活带来了很多便利和改变,同时也催促着全世界的>>>详细阅读
地址:http://www.17bianji.com/lsqh/39990.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示