[WHERE列=值,仅适用于INTEGER值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[WHERE列=值,仅适用于INTEGER值相关的知识,希望对你有一定的参考价值。

我在c ++项目上使用sqlite,但是当我在具有TEXT值的列上使用WHERE时遇到问题

我创建了一个sqlite数据库:

    CREATE TABLE User( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(24))

[当我尝试获取具有VARCHAR值的列的值时,它不起作用,并在sqlite3_step之后向我返回STATUS_CODE 101:

int res = 0;
sqlite3_stmt *request;
char *sqlSelection = (char *)"SELECT * FROM User WHERE name='bob' ";
int id = 0;

res = sqlite3_prepare_v2(db, sqlSelection, strlen(sqlSelection), &request, NULL);

if (!res){
while (res == SQLITE_OK || res == SQLITE_ROW){
  res = sqlite3_step(request);
  if (res == SQLITE_OK || res == SQLITE_ROW ){
    id = sqlite3_column_int(request, 0);
    printf("User exist %i 
",id);
  }
}
sqlite3_finalize(request);

我也尝试过使用LIKE,但它也不起作用

SELECT * FROM User WHERE name LIKE '%bob%'

但是当我执行相同的代码但需要一个INTERGER值时

SELECT * FROM User WHERE id=1

工作正常。

在用于SQLite的DB浏览器中,所有请求都可以正常工作。

答案
为了解决该问题,我搜索了状态码101的含义。
另一答案
解决方案是用TEXT替换VARCHAR字段。在WHERE之后使用sqlchar for c ++时似乎不管理VARCHAR字段]

以上是关于[WHERE列=值,仅适用于INTEGER值的主要内容,如果未能解决你的问题,请参考以下文章

此错误代码仅适用于 FDC Omaha 上的商家。商户号字段提交的值无效

Excel 导出日期格式出错,但仅适用于某些日期值

UIButton setTitleColor 仅适用于预设组件值 ios7? [复制]

re.findall带负数,我的代码仅适用于正数

3 个最新值,但仅适用于特定用户

Spark SQL - IN 子句