查询不返回结果虽然有效

时间:2014-01-09 14:34:54

标签: mysql

我运行时没有得到结果,但我肯定有符合条件的行。想法?

SELECT * FROM `elements` WHERE `child_id` IS NULL AND `parent_id`='128102'

我希望它返回child_id为空且parent_id等于128102的行,但不是。

2 个答案:

答案 0 :(得分:1)

总结我上面的所有评论:

由于您的专栏child_id是一个文字字段,因此无法NULL,因此您需要将其更改为以下内容:

SELECT * FROM `elements` WHERE `child_id` = '' AND `parent_id`='128102'

但正如我所说,你真的应该使用varchar或更好的int作为你的id字段。 Text字段始终将值存储在blob(文件)中,而不是在表中内联。它实际上不应该用于小型数据集,现在甚至认为大量文本的性能很差。

答案 1 :(得分:0)

尝试

SELECT * FROM `elements` WHERE `child_id` IS NULL AND trim(`parent_id`)='128102';

如果不起作用请尝试以下

  SELECT * FROM `elements` WHERE `child_id` IS NULL AND `parent_id`=128102;

如果上述两个查询均无效,请告诉我child_idparent_id的数据类型

还提供以下查询结果

    SELECT child_id,length(child_id),parent_id,length(parent_id) 
FROM `elements` WHERE   `parent_id` like '%128102%'