我运行时没有得到结果,但我肯定有符合条件的行。想法?
SELECT * FROM `elements` WHERE `child_id` IS NULL AND `parent_id`='128102'
我希望它返回child_id
为空且parent_id
等于128102的行,但不是。
答案 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_id
和parent_id
的数据类型
还提供以下查询结果
SELECT child_id,length(child_id),parent_id,length(parent_id)
FROM `elements` WHERE `parent_id` like '%128102%'