检查值是否为非空和TRIM(值)!=''和值!= 0

时间:2012-10-31 04:24:51

标签: mysql operators

如何查看是否value IS NOT NULL AND TRIM(value) != '' AND value != 0

如果我检查'string' != 0,它总是返回false,所以它不起作用。

它用于通用查询,它不知道其查询列的类型。

我需要做(value IS NUMERIC TYPE AND value != 0)

之类的事情

value可以是字符串,日期,时间,blob,数字等。

3 个答案:

答案 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,则变为剪裁字符串。 最有效的方法......可能不是,但它有效。