gpt4 book ai didi

ios - SQLite 和 Objective C - WHERE LIKE 语句错误

转载 作者:行者123 更新时间:2023-11-28 23:56:43 24 4
gpt4 key购买 nike

我正在尝试编写一个涉及 WHERE LIKE 语句的查询,但是我遇到了以下问题......

当我编写如下查询时:

"SELECT * FROM db WHERE name LIKE \"%%@%%\""

它被解释为:

SELECT * FROM db WHERE name LIKE "(null)"

当我查询以下内容时:

"SELECT * FROM db WHERE name LIKE \"%%%@%%\""

它被解释为:

SELECT * FROM db WHERE name LIKE "0x0p+0pple"

这个:

[@"SELECT * FROM db WHERE name LIKE \"%" stringByAppendingString:name] stringByAppendingString:@"%\""]

解释为:

SELECT * FROM db WHERE name LIKE "0x0p+0pple"

有办法纠正或解决这个问题吗?

最佳答案

如果要使用字符串格式,则需要:

NSString *query = [NSString stringWithFormat:@"SELECT * FROM db WHERE name LIKE '%%%@%%'", someValue];

前两个 %% 变成一个 %%@ 被替换为 someValue 中的任何字符串。最后两个 %% 变成一个 %

query 最终是:

SELECT * FROM db WHERE db LIKE '%apple%'

假设 someValue 是字符串 @"apple"

附带说明一下,如果您正在使用各种 sqlite3_column_xxx 函数和特定索引号,最好避免使用 SELECT * FROM,因为您无法确定返回列的顺序与您的代码匹配。明确列出您希望从查询中获取的列会更安全、更清晰。

关于ios - SQLite 和 Objective C - WHERE LIKE 语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041530/

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