为什么mysql返回所有行

时间:2013-06-11 01:38:48

标签: mysql phpmyadmin

我正在使用phpmyadmin来创建数据库和表。有问题的表格包含以下列:

离境城市|到达城市| TakeoffDate |起飞时间|着陆时间|航空公司名称|价

现在每当我使用此查询时;

select * from mynewdatabase.flights where DepartureCity = 'Rome' and ArrivalCity = 'Istanbul' and TakeoffDate = '12.06.2013' and price <= '75' ORDER BY Price

我得到所有行而不是没有。我没想到,因为没有价格小于75欧元的航班。所有字段都是文本。造成这种情况的原因是什么?如何得到我想象的空结果?

编辑:例如,当我使用相同的查询但价格&lt; ='400'时,它只返回价格小于或等于400的航班。只有在没有满足的航班时才会发生错误标准。

1 个答案:

答案 0 :(得分:2)

你期望它的方式,mysql将比较数字,而不是文本。

如果列价格是任何数字类型,请写如下:

and price <= 75

如果是文本并且您想将其保留为文本,则需要使用CAST进行转换:

SELECT * FROM mynewdatabase.flights WHERE Price<=75 ORDER BY CAST(Price AS SIGNED);

这会将查询的文本值转换为带符号(整数),列类型将保留为文本