1

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

我有一个包含学生时间表信息的数据库,我将其与包含学生信息的表进行匹配。学生信息已从 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()可以解决这个奇怪的问题?

4

1 回答 1

0

您的简化查询必须是:

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在使用 JOIN 查询时,您应该始终拥有。

于 2015-03-23T10:25:53.297 回答