gpt4 book ai didi

mysql - sql查询字符串中的整数

转载 作者:行者123 更新时间:2023-11-29 11:03:40 27 4
gpt4 key购买 nike

我有一个无法修改的数据库,该数据库在 varchar(255) field1 的 table1 中包含一个 32 位整数值。

我对所述表的最后十个或类似的记录感兴趣,其中整数小于给定的参数值。

运行下一个sql语句几乎可以工作:

echo 'select field1 from table1 where field1 < 123456 order by field1;'|mysql

问题是 field1 包含类似的值

123450
123453

对选择的答案,但也有诸如

之类的值
12344
12345

由于使用的排序顺序和方法(使用字符串排序?),它也满足标准。

问题当然是缺少前导零,我无能为力。

以纯 sql 查询方式解决此问题的最佳方法是什么?由于最终解决方案的时间限制,我更喜欢每个参数一个查询。

最佳答案

您可以通过将其视为数字来转换该值。这是一个简单的方法:

select field1
from table1
where field1 + 0 < 123456
order by field1 + 0;

+ 0 执行“静默转换”。如果字符串不是数字,则返回 0。转换仅适用于字符串中的前导数字。

一般来说,最好使用正确的类型。如果该字段包含非数字值,您可能需要:

where field1 + 0 < 123456 and
field1 + 0 > 0

关于mysql - sql查询字符串中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com