php mysql,如果varchar不为null
我的db表如下所示:php mysql,如果varchar不为null,php,mysql,Php,Mysql,我的db表如下所示: [id] [city] [temp] [cssstyle] [1] [London] [10] [top:15px;left:5px] [2] [Berlin] [10] [] [3] [Paris] [10] [top:15px;left:5px] [4] [New York] [10] [] cssstyle是varchar(128) 我尝试使用以下命令仅显示具有cssstyle的行: mysql_query("SELECT * FROM cities WHERE c
[id] [city] [temp] [cssstyle]
[1] [London] [10] [top:15px;left:5px]
[2] [Berlin] [10] []
[3] [Paris] [10] [top:15px;left:5px]
[4] [New York] [10] []
cssstyle是varchar(128)
我尝试使用以下命令仅显示具有cssstyle的行:
mysql_query("SELECT * FROM cities WHERE cssstyle is not null")
但这是显示所有行,我喜欢只显示伦敦和巴黎行
谢谢您似乎在空字段中存储空字符串(
'
),而不是NULL
。这些在MySQL中是不同的
使用以下命令:
SELECT *
FROM cities
WHERE cssstyle > ''
通过使用“大于”,您可以在cssstyle
上使用索引范围扫描,从cssstyle不为NULL或cssstyle的城市中选择*
SELECT * FROM cities WHERE cssstyle IS NOT NULL OR cssstyle <> ''
您也可以尝试MySQL中的LENGTH
函数:
SELECT *
FROM cities
WHERE LENGTH(cssstyle) > 0
我不确定您的
csssstyle
列是否将默认值存储为null
。最好检查是否不为空或为空
SELECT * FROM cities WHERE cssstyle != '' OR cssstyle IS NOT NULL
您还可以使用
和
检查导致null的两个条件
SELECT * FROM cities where cssstyle IS NOT NULL AND cssstyle <> ''
您确定该行设置为
NULL
?谢谢,这就是我想要的。@feeela:要过滤掉NULL和空值,请尽可能使用索引。
SELECT * FROM cities where cssstyle IS NOT NULL