首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sql查询中将varchar与数字进行比较

在sql查询中将varchar与数字进行比较
EN

Stack Overflow用户
提问于 2013-05-11 22:04:05
回答 1查看 7.8K关注 0票数 2

表格

代码语言:javascript
复制
user(varchar40)      credit(varchar40)
u1                   400
u2                   500
u3                   600
u4                   650

and查询

代码语言:javascript
复制
$sql=mysql_query("SELECT `user` FROM `tbl` WHERE `credit` < '8'");
for($i=0;$i<mysql_num_rows($sql);$i++)

{
echo mysql_result($sql,$i,0);
}

和结果u1

u2

u3

u4

因为credit是varchar only first number比较并返回所有用户

我如何做正确的比较而不改变表格?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 22:05:39

首先,为什么要将数字存储为字符串?无论如何,您可以使用CAST()将值转换为数字

代码语言:javascript
复制
SELECT `user` FROM `tbl` WHERE CAST(`credit` AS SIGNED) < 8

如果我是你,你应该将它修复为正确的数据类型,以避免总是为了比较而强制转换列。为此,修改该表并添加额外的列,即INTEGER列。通过将列credit转换为新添加的列并删除列credit来删除表。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16497878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档