我一直试图围绕一个可能的隐藏价值.
每当我运行此查询
SELECT * FROM LIST WHERE `GROUP_2` = "Yes";
我得到0结果.
每当我运行这个:
SELECT * FROM LIST WHERE `GROUP_2` LIKE 'Yes%';
我能拉结果.
我已经尝试了许多不同的导出和导入参数使用MySQL加载数据进行csv导入但没有任何作用. GROUP_1和GROUP_2都设置为varchar(55)
我可以运行任何查询来确定原因或检测隐藏的分隔线?
ID name GROUP_1 GROUP_2
1 Bob No Yes
2 Jim Yes No
解决方法:
要确定问题所在,可以使用HEX功能:
SELECT group_1, HEX(group_1)
FROM table
WHERE group_1 LIKE 'Yes%' AND group_1!='Yes'
是的应编码为596573(取决于使用的代码集可能会有所不同),但您会看到其后的一些其他字符.
编辑
我建议你找到根本原因并修复文本文件或导入过程.但是,如果要在不执行新导入的情况下修复现有数据,则有多个选项.
您可以关注xQbert链接(感谢您的链接!):
update table SET group_2 = TRIM(TRAILING '\n' FROM group_2);
或修复自己的查询:
UPDATE TABLE set GROUP_2 = replace(replace(GROUP_2,'\n',''), '\r', '');
或者如果您只有/没有值:
UPDATE TABLE set GROUP_2='Yes' WHERE group_2 LIKE 'Yes%' AND group_2!='Yes';
UPDATE TABLE set GROUP_2='No' WHERE group_2 LIKE 'No%' AND group_2!='No';
标签:mysql
来源: https://codeday.me/bug/20190722/1504128.html