我不确定这种情况是否仅与Coldfusion或Mysql相关。比较空字符串,如果它不等于具有字符串值的MySQL列
如果一列是TEXT类型的比较为空字符串值,如果它是不相等的,此代码的工作:
column > ""
,但不是这一个:
column != ""
在我SQL代码,让我们假设带有TEXT类型的数据库列附件中包含字符串。输入附件的表格值(:附件)为空(我认为它将参考“”)。
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
)
该代码将返回附件= 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
)
此代码返回附件= 2这就是我真的很期待有。
那么,如果相等或者它不等于空字符串,那么比较列的最佳方法是什么?我很少使用NULL值,因为保存FORM时,它们会输入空字符串。
[检查与MySQL空字段]的可能的复制(https://stackoverflow.com/questions/2327029/checking-for-an-empty-field-with-mysql) – Pyromonk
不要使用双引号来比较数据库中的字符串,然后全部更改为单引号并再次测试! –
为什么我不应该使用双引号? @JorgeCampos –