如何检查SQL中的1个表列条件操作运算符(>或<)

时间:2017-05-29 18:58:45

标签: mysql sql

表格格式

tid,name,num1,num2
1,abc,10,9
2,xyz,15,15

结果

1,abc,10,9

SQL Like

select field1,field2,field3 from table1 where field1 > field2

1 个答案:

答案 0 :(得分:0)

表中用于这两列的数据类型很可能都是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;