我有一个字段remote_number,它是Varchar(30(。
大多数数据的长度在3到11位之间。
当调用是匿名的时,此字段值设置为"匿名"。
我需要从值为>999或匿名。
我可以独立进行这些查询,例如
SELECT * FROM call_history WHERE remote_number>999;
或
SELECT * FROM call_history WHERE remote_number='anonymous';
组合2时,如
select * from call_history where (remote_number>999 OR remote_number='anonymous');
remote_number字段中所有匿名的数据由于不是双精度数据而被截断。
Warning | 1292 | Truncated incorrect DOUBLE value: 'anonymous'
如何调整此查询以使"匿名"数据不被截断?
编辑:数据类型1
查询已运行警告
这不起作用的原因是,如果我们说remote_number>999我们暗示remote_number是一个数字,但很明显,返回的值是一个字符串而不是数字。
为了修复我指定的字符长度。
AND (char_length(remote_number)>3 OR remote_number='anonymous'