【发布时间】:2015-01-28 00:26:15
【问题描述】:
我觉得我的问题很奇怪。我正在尝试使用以下 sql 代码:
SELECT `name` FROM `table` WHERE `id` = 'roman' GROUP by `name`
它返回一个空值,我确定代码是正确的,因为它适用于其他表。我注意到,如果我去表格,删除id 值,然后再次手动键入它,它工作得很好(即使其余值看起来相同)。我的表是从 csv 文件导入的,但我确定行尾没有任何空格/字母/错误字符等(甚至使用 HexEdit 进行了检查)。例如,如果我使用:
SELECT `name` FROM `table` WHERE `id` LIKE 'roman%' GROUP by `name`
然后它起作用了,所以 id 值似乎有问题。我也尝试过更改字符集。
【问题讨论】:
-
你能显示
SELECT id, name WHERE 'id' LIKE 'roman%' GROUP by 'name'的输出吗?你的FROM table_name在哪里? :-) -
关于 FROM,忘了写在这里,但它在代码中 :) 我不能使用 LIKE,因为我有一些其他类似的 id,roman_tech,roman_skills 等
-
绝对确定,字段的长度是否正确? IE。这是否返回一列值
5?select length(id) from ... where id like 'roman%'; -
您可以重置表中的值吗?只是将
roman复制到表格中?我很确定隐藏的特殊字符有一些错误的值,所以尝试放置一个好的并再次查询 -
看起来十六进制返回 6 个值而不是 5 726F6D616E 和 726F6D616E0D