如何检查value IS NOT NULL AND TRIM(value) != '' AND value != 0
如果我检查一个'string' != 0,它总是返回false,所以它不工作。
它用于不知道其查询的列类型的通用查询。
我需要做一些像(value IS NUMERIC TYPE AND value != 0)这样的事情
value可以是字符串、日期、时间、blob、数字等。
发布于 2012-10-31 12:28:47
也许是CAST(value AS int) <> 0
发布于 2012-10-31 18:19:22
在不了解列类型的情况下,您可以求助于正则表达式来确定是根据字符串数据还是数字列数据继续:
value IS NOT NULL AND
IF(value REGEXP '^-?[0-9]+(\.[0-9]+)?$', value <> 0, TRIM(value) <> '')根据正则表达式的结果,它将与0或''进行比较。
包含'0'的警告字符串将被认为是空的,但在搜索MySQL网站后,我找不到合适的解决方法。
发布于 2012-10-31 18:38:45
在使用记录集进行SQL数据迁移时,我以前就做过类似的事情。
如果trim(fields(0).value & "") > "“then‘我们有一个值
所以如果它是空的,它就变成了一个空字符串,如果它不是空的,它就变成了一个修剪过的字符串。最有效的方法...可能不是,但它是有效的。
https://stackoverflow.com/questions/13151252
复制相似问题