2016-07-30 142 views
0

我想從一個非空的字段中選擇表中的所有行。我的sql查詢是選擇所有與一個字段非空的項目

SELECT * FROM coupon_category WHERE customer=4 AND like_at <>; 

但它最終顯示語法錯誤。什麼是正確的查詢? like_at是DateTime類型

回答

3

假設like_at是一個字符串,一個簡單的方法是:

WHERE customer = 4 AND like_at <> '' 

當然,這取決於你的意思是通過非空的東西。

這通常指NULL,因此對於任何類型的將是:

WHERE customer = 4 AND like_at IS NOT NULL 

注意:第一個版本還濾除NULL值以及空字符串(假定like_at的類型是一個字符串) 。

+0

是日期時間類型 – raju

+0

@raju。 。 。然後「空」大概意思是「NULL」,第二種形式是使用什麼。 –

0

查詢解釋器預計在符號後出現一個值。 如果你想選擇一個字段不爲空的所有行,你應該做的:

SELECT * FROM coupon_category WHERE customer=4 AND like_at <> ''; 

也許你也可以檢查空值。

2

如果要排除的空格,並有可能空,嘗試:

SELECT * FROM coupon_category WHERE customer=4 AND ifnull(like_at,'') <> ''; 
0

這取決於發生了什麼,當like_at是空的,wthen的「細胞」,是空的它給你空?

如果單元格是空的u可以使用

SELECT * FROM coupon_category WHERE customer=4 AND len(like_at)>0 

如果它給你空,則:

SELECT * FROM coupon_category WHERE customer=4 AND like_at is not null 
相關問題