繁体   English   中英

varchar列中的mysql数查询问题

[英]Mysql numbers in varchar columns query issue

我有这个列在talbe中,由于历史原因是一个字符串,但现在新的值是数字。

我必须从数字间隔中找到最大值,但值是DB中的字符串:(

如果op_calcul会是一个数字,那将是一个简单的sql:

Select MAX(op_calcul) FROM nom_prod where op_calcul  >=500 and op_calcul < 5000

但是把它们当成varchar使我陷入了麻烦。

尝试了不同的方案但尚未提供解决方案。

任何提示?

谢谢

SELECT MAX(CAST(op_calcul as SIGNED)) FROM nom_prod...

应该做的伎俩。 您可能还需要强制转换WHERE子句。

理想情况下,出于性能原因,MAX和WHERE都应该使用整数列。 是否有非数字或超出范围的数据? 如果没有更改列类型,那将是相当琐碎的。

使用mysql强制转换将数据转换为所需的数据类型。

http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast

但是请注意,它确实会影响查询性能。

SELECT MAX(CAST(`op_calcul` AS SIGNED))
FROM `nom_prod`
WHERE `op_calcul`  >= 500
AND `op_calcul` < 5000;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM