我想检查mysql,如果列是空白的,即'',或 0 。 有没有办法在一个条件下做到这一点? 喜欢
或
其中任何一种都可以使用,还是有不同的解决方案?
答案 0 :(得分:3)
这更像是数据质量的问题。在设计良好的数据库中,''
和0
之间应该有明显的区别。
如果你对它含糊不清,除了这两个值之外,还有很多值可以解释为“空白”。 NULL
是显而易见的,但白色空间怎么样?或者包含0.00
的字符串,或者即使您正在查找数字值,也可以是任何非数字字符串。
理想情况下,数据应以与其应该保存的数据类型相匹配的格式存储 - 例如,如果您期望数字字段,则应该是int
或其他数字类型,具体取决于您要存储的内容。这样,它永远不会包含字符串值,因此您永远不需要检查它。
如果您无法更改数据库本身的类型,则下一个最佳解决方案是将值转换为您在select查询中期望的数据类型。例如:
SELECT CAST(myfield as int) as myfieldnum FROM table where myfieldnum != 0
有关详细信息,请参阅MySQL手册:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html
但是,最终,它确实取决于您期望数据字段包含的内容,以及您希望如何对不同类型的内容做出反应。
答案 1 :(得分:2)
这是否符合一个条件?
... WHERE order_id IN ('0', '');
答案 2 :(得分:1)
我试验了一下,似乎答案是:
这将显示order_id不为0且不为空白的结果
答案 3 :(得分:-1)
为什么不使用简单的查询来测试两个条件
从tablename中选择*,其中orderid =''或order_id = 0
试试这个会起作用