mysql 查询 一定数值范围数据 50

比如查一个字段>1000<2000这样一个条件我希望出现1000到2000的数值但是我数据里面类似1500acdg213、1212f031dd这样的数据也出现了怎么办这个... 比如 查 一个字段>1000 <2000 这样一个条件 我希望出现 1000到 2000的 数值 但是我数据里面 类似 1500acdg213 、1212f031dd 这样的数据也出现了 怎么办 这个字段 是varchar 类型 展开
 我来答
badkano
2013-10-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部

先创建一个函数

如下

CREATE FUNCTION isnum(
p_string VARCHAR(32) 
)
    RETURNS int(4)
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT '检查字符串是否为纯数字'
BEGIN
/*检查字符串是否为纯数字*/
/*返回值:1-为纯数字 0-非纯数字*/
     DECLARE iResult INT DEFAULT 0;
     SELECT p_string REGEXP '^[0-9]*$' INTO iResult;
     IF iResult = 1 THEN
        RETURN 1;
     ELSE
         RETURN 0;
     END IF;
END;

然后

select * from 表名 where isnum(字段名) <>0 and cast(字段名 as DECIMAL) >1000 and cast(字段名 as DECIMAL)<2000

这句的表名和字段名你替换成你自己的

fwfwt
2013-10-10 · TA获得超过104个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:79.3万
展开全部
你查询的时候不要用*号,指定字段名不就行了
select 你要查询的字段 $table where 字段>1000 and 字段<2000;
这样就可以了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知三四郎
2013-10-10 · TA获得超过616个赞
知道小有建树答主
回答量:1172
采纳率:63%
帮助的人:724万
展开全部
select ff from table where ff*1>1000 and ff*1<2000
更多追问追答
追问
这个方法让我眼前一亮   不过没成功     跟没有 乘1  是一个效果
追答
我测试是成功的,你的版本多少?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式