2016-08-18 140 views
0

我有以下查询:执行查询

SELECT box, name from box where 'name' != '' 

,但它似乎没有考虑到地方条件考虑在内,并执行整个查询,就好像是条件不在那里。

我基本上只想检索名称列中找到的信息。

任何帮助,将不胜感激

+0

显示模式将有所帮助。加上一个空格的名称不会为空 – Drew

+0

你真的有一个名为'box'的表格,其中包含一个名为'box'的列或者是另一个潜在的错误 – RiggsFolly

回答

2
SELECT box, name from box where 'name' != '' 

'name'是一个字符串,字符串'name'NOT EQUAL字符串''这是总是如此。

SELECT box, name from box where name != '' 

如果你想去的地方一个字符串不为空,而不是空字符串,那么你可以做这样的事情:

SELECT box, name from box where COALESCE(name,'') != '' 

,并考虑到空白

SELECT box, name from box where COALESCE(TRIM(name)),'') != '' 
+0

或包装在反引号 – RiggsFolly

+0

@RiggsFolly好点 – Matt

+1

OP可能看到一个使用反引号的例子,并没有意识到他们不是单引号 – RiggsFolly

0

尝试在查询name <> NULLIS NOT NULL

+0

谢谢我试过IS NOT NULL,但由于某种原因似乎没有效果 – John

+0

@约翰做了<>空作品? –

+0

原来你可能是对的,他'name'不为空 – Drew

-1

有你尝试在哪里notnull(名称,'')<>''?

+0

名称仍然是一个字符串如果你用这样的单引号将它包装起来 – Matt

+0

我知道你缺少代表,但这只是一个评论。这种类型的答案吸引了下来或被标记为 ___我没有DV___,如果发生这种情况,你将失去代表点,并花费更长的时间去到50个代表,你需要评论任何问题。 在此之前,坚持要求很好的问题,因此在没有 需要澄清的情况下轻松回答。 http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an-i-do-instead – RiggsFolly

+0

当然,有一个错误,它应该是没有qoutes,我的坏 – Anakhin