CSV导入后MySQL WHERE子句不起作用

CSV导入后MySQL WHERE子句不起作用,mysql,database,csv,Mysql,Database,Csv,我对MySQL WHERE子句有问题。我想我知道问题是什么,只是不知道如何解决 我有一个包含学生时间表信息的数据库,我正在将它与一个包含学生信息的表进行匹配。学生信息已从CSV utf-8文件导入数据库,其他信息仅通过正常的插入查询插入数据库 WHERE子句很简单,如下所示: WHERE gpu_timetable.cls_name = (SELECT cls_name FROM gpu_students WHERE std_number = 123441 LIMIT 1) 它将时间表

我对MySQL WHERE子句有问题。我想我知道问题是什么,只是不知道如何解决

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

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

WHERE  gpu_timetable.cls_name = 
  (SELECT cls_name FROM gpu_students WHERE std_number = 123441 LIMIT 1)
它将时间表中的cls_名称与学生表中的类名进行匹配。就像我说的,数据来源不同,但看起来是一样的。例如,当我删除SELECT查询并使用这个字符串“LV6A”时,代码就工作了

这两个字段的排序规则都是*utf8\u general\u ci*,我也尝试过修剪,但没有成功,用LIKE替换操作符=也是如此


导入学生信息时我是否做错了什么,或者是否有其他类似于TRIM的功能可以解决这个奇怪的问题?

您的简化查询必须是:

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

在使用联接查询时,您应该始终使用tablename.fieldname。

为什么在此处使用subselect?为什么不加入?您确定在CSV导入之前正在工作吗?因为MySQL不允许子查询中的限制。@MikeBrant你说得对,我可以使用连接,这可能是一种更快的方法。问题是匹配不起作用,子选择和联接都不起作用。@ajreal谢谢,我不知道子选择查询中不允许限制。我的查询在CSV导入之前工作,但我使用的是另一个查询。但此匹配仍然不起作用,或者此简化查询应该返回一些内容。选择*从gpu\U时间表内部加入gpu\U时间表上的gpu\U学生。cls\U名称=gpu\U学生。cls\U名称,其中std\U编号=123441