CSV导入后,MySQL WHERE子句无效

时间:2013-01-24 18:11:51

标签: mysql database csv

我遇到了MySQL WHERE子句的问题。我想我知道问题是什么,而不是如何修复它。

我有一个包含学生时间表信息的数据库,我将其与包含学生信息的表格进行匹配。学生信息已从CSV(utf-8)文件导入数据库,其他信息仅通过“正常”INSERT查询插入数据库。

WHERE子句很简单,如下所示:

WHERE  gpu_timetable.cls_name = 
  (SELECT cls_name FROM gpu_students WHERE std_number = 123441 LIMIT 1)

它将时间表中的cls_name(类名)与学生表中的类名进行匹配。就像我说的那样,数据来自不同的来源,但看起来是一样的。例如,当我删除SELECT查询并使用此字符串('LV6A')时,代码可以正常工作。

两个字段的排序规则是* utf8_general_ci *,我也尝试了TRIM()但没有成功,将=替换为LIKE也是一样。

导入学生信息时我做错了吗?还是有其他类似于TRIM()的功能可以解决这个奇怪的问题?

1 个答案:

答案 0 :(得分:0)

您的简化查询必须是:

SELECT * FROM gpu_timetable INNER JOIN gpu_students ON gpu_timetable.cls_name = gpu_students.cls_name WHERE gpu_students.std_number = 123441

在使用JOIN查询时,您应始终拥有tablename.fieldname