如何检查1分表列在SQL Where条件运算符(>或<)
问题描述:
表格式如何检查1分表列在SQL Where条件运算符(>或<)
tid,name,num1,num2
1,abc,10,9
2,xyz,15,15
结果
1,abc,10,9
SQL就像
select field1,field2,field3 from table1 where field1 > field2
答
最有可能的数据表中用于这两列的类型都是varchar。
所以你没有比较数字。
数字10大于9,但字符串“10”不大于“9”。
您可以更改表格并将其更改为数字类型。
或者在比较它们之前,在WHERE子句中将它们转换为数字类型。
例如:
select *
from table1
where cast(field1 as SIGNED) > cast(field2 as SIGNED)
其中表类型被改变
drop table if exists table1;
create table table1 (id int, name varchar(30), field1 varchar(8), field2 varchar(8));
insert into table1 (id,name,field1,field2) values
(1,'abc',10,9),
(2,'xyz',15,15);
select *
from table1
where field1 <= field2;
alter table table1
modify field1 INT SIGNED,
modify field2 INT SIGNED;
select *
from table1
where field1 > field2;
+0
我尝试和更改int数据类型但没有得到实际输出。 –
+0
好吧我运行sql脚本。 –
+0
谢谢你的工作。 –
欢迎堆栈溢出的一个例子。我们知道的事情 - 但不清楚你的实际问题是什么。你能提供更多细节吗? Wher'y表名? – Jan
谢谢您的支持,实际上我想检查两个表字段之间的sql条件,如“选择id,名称,no,no1从表no其中no> no1” –
看起来不错 - 问题在哪里? – Jan