字符串的真实性如何在MySQL中运行?

mpe*_*pen 4 mysql casting

我想查找某个字符串字段不为空或空的记录,所以我只是写SELECT ... FROM myTable WHERE x,假设空字符串和空字符串将评估为false,但似乎并非如此.

字符串"02306"为真,而"N06097EIP"在某种程度上是错误的.

这是怎么回事?

编辑:我知道解决方法,我只想知道如何投射.

Kub*_*tek 6

在这些表达式中,字符串首先转换为数字."02306"被转换为2306,其> 0并因此被考虑true,而"N06097EIP"(以非数字开始)被转换为0,其被评估为false.

比较结果:

select convert("N06097EIP",signed)
Run Code Online (Sandbox Code Playgroud)

select convert("02306",signed)
Run Code Online (Sandbox Code Playgroud)