2011-06-20 47 views
1

得到记录有没有办法只有一个条件,而不是这三个条件得到记录: -有没有办法通过一个条件

select * from product 
where price != '' and price != 0 and price is not null 

价格列的DDL是price varchar(15) default null

+1

为什么你在'varchar'存储'price'(这大概数字)? – lonesomeday

+0

其实我有存储价格像10Rs,10usd等 – Bajrang

+0

你应该重新考虑设计决定... – lonesomeday

回答

1

如果”重新关注病情的长度,你可以试试这个:

select * from product 
where price > '' 

,甚至可能会更好

select * from product 
where price 
+0

它检索没有价格的所有记录,但在上面的例子中它检索所有有价格的记录。 :) – Bajrang

+0

@ J.J。你必须知道数据库告诉如此:) - 我认为第一部分不是你要求的。我编辑了这个问题。 – hakre

0

如果你把价格数字类型和NOT NULL的默认情况下,你可以只检查脱身!= 0

4

好,空字符串值都为假,0计算为假,空评估板为假,所以这应该工作:

SELECT * FROM product WHERE price;

+0

它在if条件下不会工作?如果(价格,价格,'不适用')价格,我没有检查在哪里..? – Bajrang

+0

它在任何情况下以及其他任何地方都可以工作,但是问题的根源不是价格大吗?我想象你正在运行像SELECT *,IF(价格,价格,'N/A')AS价格'这样的查询,然后你试图使用'$ result ['price']'... – cypher

+0

不,一些误解,密码在条件不起作用我现在检查?它的工作在哪里,但是我把它写成价格>''它的工作......?正如哈克雷说... – Bajrang

相关问题