为了账号安全,请及时绑定邮箱和手机立即绑定

mysql varchar 查询问题 ?

mysql varchar 查询问题 ?

30秒到达战场 2019-04-19 15:11:18
mysql varchar 查询问题 
查看完整描述

5 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

根据你1,2点原因我做出如下推断:
你导进去的数据daihao字段varchar是否包含了空格或者其它特殊字符,或者存在编码问题;
select * from a where daihao= 18这个查询工具自动转成了数字类型,肯定是查询没有问题的。

查看完整回答
反对 回复 2019-04-23
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

直接用> < 啊
比如
select * from 表 where 字段 > 100
---补充
你什么数据库啊。varchar类型也可以用。
create table test(
col1 varchar(2)
)
declare @i int
set @i = 1
while @i< 100
begin
insert into test values(convert(varchar(2),@i))
set @i = @i + 1
end
select * from test where col1 > 50 --正确
select * from test where convert(numeric(10),col1) > 50 --正确
select * from test where col1 > '50' --错误
drop table test
你自己测试吧
如果你非要把类型转成数值型也可以但这是用不到索引了



查看完整回答
反对 回复 2019-04-23
?
守着一只汪

TA贡献1872条经验 获得超3个赞

可以把varchar转换成别的类型
比如 decimal,float之类
例:
select * from 表 where convert(float,字段)>100

查看完整回答
反对 回复 2019-04-23
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

条件语句
where id != '1' and id != '2' --id字段为char、nchar、varchar型等等

where id != 1 and id != 2 --id字段为int、smallint型

查看完整回答
反对 回复 2019-04-23
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

查询的时候加个这个,distincy,举个例子:$list['pay_user'] = $this->get_table("orders")->where("pay_time>=$time2 and pay_time<$time1 and is_recharge=%d and statu=%d",1,1)->count('DISTINCT username');就这样,你就可以查出不相同的字段了

查看完整回答
反对 回复 2019-04-23
  • 5 回答
  • 0 关注
  • 1415 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信