如果空字符串不等于 MySQL 列与字符串值,则比较空字符串
Comparing empty strings if it is not equal to MySQL column with string values
我不确定这种情况是只与 Coldfusion 有关还是 Mysql。
如果将 TEXT 类型的列与空字符串值进行比较,如果不相等,则此代码有效:
column > ""
但不是这个:
column != ""
在我的 SQL 代码中,假设 TEXT 类型的数据库列附件中包含字符串。 Input Attachment(:attachment)的Form值为空(我想会参考"").
attachment = (
CASE
WHEN :attachment = "" AND attachment = ""
THEN 1
WHEN :attachment = "" AND attachment != ""
THEN 2
WHEN :attachment != "" AND attachment = ""
THEN 3
WHEN :attachment != "" AND attachment != ""
THEN 4
ELSE attachment
END
)
此代码将 return 附件 = 3.
但是,如果我使用这个 SQL 代码:
attachment = (
CASE
WHEN :attachment = "" AND attachment = ""
THEN 1
WHEN :attachment = "" AND attachment > ""
THEN 2
WHEN :attachment > "" AND attachment = ""
THEN 3
WHEN :attachment > "" AND attachment > ""
THEN 4
ELSE attachment
END
)
这段代码 returns attachment = 2 这是我真正期待的。
那么,比较列是否等于或不等于空字符串的最佳方法是什么?我很少使用 NULL 值,因为当保存 FORM 时,他们输入空字符串。
我认为您应该使用 <> 而不是 != 并且还应该使用单引号而不是双引号 例如
WHEN :attachment <> '' AND attachment <> ''
警告:切勿使用 column > ''
我刚遇到一些 MySql 5.7 的案例,其中 column > ''
结果为 FALSE,
但是 column < ''
结果是 TRUE!!
所以最好检查 LENGTH(column)
我不确定这种情况是只与 Coldfusion 有关还是 Mysql。
如果将 TEXT 类型的列与空字符串值进行比较,如果不相等,则此代码有效:
column > ""
但不是这个:
column != ""
在我的 SQL 代码中,假设 TEXT 类型的数据库列附件中包含字符串。 Input Attachment(:attachment)的Form值为空(我想会参考"").
attachment = (
CASE
WHEN :attachment = "" AND attachment = ""
THEN 1
WHEN :attachment = "" AND attachment != ""
THEN 2
WHEN :attachment != "" AND attachment = ""
THEN 3
WHEN :attachment != "" AND attachment != ""
THEN 4
ELSE attachment
END
)
此代码将 return 附件 = 3.
但是,如果我使用这个 SQL 代码:
attachment = (
CASE
WHEN :attachment = "" AND attachment = ""
THEN 1
WHEN :attachment = "" AND attachment > ""
THEN 2
WHEN :attachment > "" AND attachment = ""
THEN 3
WHEN :attachment > "" AND attachment > ""
THEN 4
ELSE attachment
END
)
这段代码 returns attachment = 2 这是我真正期待的。
那么,比较列是否等于或不等于空字符串的最佳方法是什么?我很少使用 NULL 值,因为当保存 FORM 时,他们输入空字符串。
我认为您应该使用 <> 而不是 != 并且还应该使用单引号而不是双引号 例如
WHEN :attachment <> '' AND attachment <> ''
警告:切勿使用 column > ''
我刚遇到一些 MySql 5.7 的案例,其中 column > ''
结果为 FALSE,
但是 column < ''
结果是 TRUE!!
所以最好检查 LENGTH(column)