gpt4 book ai didi

ios - sql select 语句不起作用

转载 作者:行者123 更新时间:2023-11-29 04:13:38 24 4
gpt4 key购买 nike

我问过这个问题here

当我运行这个查询时 NSString *qsql = [NSString stringWithFormat:@"SELECT * FROM site"];

它工作正常,但是当我尝试这个查询时 NSString *qsql = [NSString stringWithFormat:@"从网站中选择名称,其中纬度 LIKE %f AND 经度 LIKE %f",pin_lat,pin_long];当我可以使用 NSLog(@"lat = %f and long=%f",pin_lat,pin_long) 在控制台中打印 lat、long 的值时,它不起作用,它打印的值正确,所以为什么它不采用该值查询?

我尝试修改查询,但它根本不起作用

修改后的查询类似于-NSString *qsql = [NSString stringWithFormat:@"从站点中选择名称,其中纬度 LIKE\"%%%f%%\"AND 经度 LIKE\"%%%f%%\"",pin_lat,pin_long];

但是当我尝试手动输入纬度时,它工作正常

NSString *qsql = [NSString stringWithFormat:@"SELECT * from site where latitude='-31.7306'"];

我应该如何修改我的查询以便我可以运行它..

最佳答案

我猜,这是因为您在查询中使用了 AND ,所以它会选择满足两个条件的 row 。尝试使用 OR 而不是 AND 就像

NSString *qsql = [NSString stringWithFormat:@"SELECT name FROM site WHERE latitude LIKE '%f' OR longitude LIKE '%f'",pin_lat,pin_long];

或者,如果您想要满足这两个条件的行,那么您需要在数据库中拥有该值。

或者,它可能会发生,因为 LIKE 尝试完全匹配您给出的内容,您需要使用 % 符号来匹配继续该变量后的任何内容。如果你想像你提到的那样匹配你的纬度,你需要使用这样的查询

NSString *qsql = [NSString stringWithFormat:@"SELECT name FROM site WHERE latitude LIKE '%.2f%%' OR longitude LIKE '%.2f'",pin_lat,pin_long];

这将匹配该纬度或经度值中精度 2 之后的任何值。它将匹配以下值。19.241111111
19.242222222
19.243333333

关于ios - sql select 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14020956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com