如何查看是否value IS NOT NULL AND TRIM(value) != '' AND value != 0
?
如果我检查'string' != 0
,它总是返回false,所以它不起作用。
它用于通用查询,它不知道其查询列的类型。
我需要做(value IS NUMERIC TYPE AND value != 0)
value
可以是字符串,日期,时间,blob,数字等。
答案 0 :(得分:2)
也许是CAST(value AS int) <> 0
?
答案 1 :(得分:0)
如果不了解列类型,您可以使用正则表达式来确定是否基于stringish或numberish列数据继续:
value IS NOT NULL AND
IF(value REGEXP '^-?[0-9]+(\.[0-9]+)?$', value <> 0, TRIM(value) <> '')
根据正则表达式结果,它会与0
或''
进行比较。
警告包含'0'
的字符串将被视为空,但在拖网MySQL网站后,我找不到合适的解决方法。
答案 2 :(得分:0)
在使用记录集进行SQL数据迁移之前,我已经做过类似的事情了。
如果修剪(字段(0).value&amp;“”)&gt; “”然后'我们有一个值
因此,如果它为null,则变为空字符串,如果它不为null,则变为剪裁字符串。 最有效的方法......可能不是,但它有效。