我正在使用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的航班。只有在没有满足的航班时才会发生错误标准。
答案 0 :(得分:2)
你期望它的方式,mysql将比较数字,而不是文本。
如果列价格是任何数字类型,请写如下:
and price <= 75
如果是文本并且您想将其保留为文本,则需要使用CAST进行转换:
SELECT * FROM mynewdatabase.flights WHERE Price<=75 ORDER BY CAST(Price AS SIGNED);
这会将查询的文本值转换为带符号(整数),列类型将保留为文本