我有一个相当长的sqlite查询:

const char *sql_query = "SELECT statuses.word_id FROM lang1_words, statuses WHERE statuses.word_id = lang1_words.word_id ORDER BY lang1_words.word ASC";

我怎样才能把它分成几行,使它更容易阅读?

const char *sql_query = "SELECT word_id
                        FROM table1, table2
                        WHERE table2.word_id = table1.word_id
                        ORDER BY table1.word ASC";

我收到一个错误.

有没有办法在多行中编写查询?

推荐答案

有两种方法可以在多行上拆分字符串:

  1. 每根线都有自己的一行.仅适用于字符串:

    • 普通C:

      char *my_string = "Line 1 "
                        "Line 2";
      
    • 目标C:

      NSString *my_string = @"Line1 "
                             "Line2";    // the second @ is optional
      
  2. 使用\-可用于任何表达式:

    • 普通C:

      char *my_string = "Line 1 \
                         Line 2";
      
    • 目标C:

      NSString *my_string = @"Line1 \
                              Line2";
      

第一种方法更好,因为没有太多的空白.然而,对于SQL查询,两者都是可能的.

注意:对于#define,您必须添加一个额外的\来连接两个字符串:

普通C:

#define kMyString "Line 1"\
                  "Line 2"

C++相关问答推荐

为什么listen()(在调用accept()之前)足以让应用程序完成3次握手?

C/C++中的状态库

GCC:try 使用—WError或—pedantic using pragmas

需要大整数和浮点数.使用long long int和long double

为什么I2C会发送错误的数据?

用C宏替换strncMP函数中的参数

如何创建一个C程序来存储5种动物的名字,并在用户 Select 其中任何一种动物时打印内存地址?

CSAPP微型shell 实验室:卡在sigprocmask

预先分配虚拟地址空间的区域

使用sscanf获取零个或多个长度的字符串

为什么此共享库没有预期的依赖项?

用C语言计算文本文件中的整数个数

在for循环中指向数组开头之前

在libwget中启用Cookie会导致分段故障

为 struct 中的数组动态分配内存时出错

GCC奇怪的行为,有fork 和印花,有换行符和不换行符

循环中的静态变量与块中的变量和循环

使用C++中的字符串初始化 struct 时,从‘char*’初始化‘char’使指针变为整数,而不进行强制转换

即使我在C++中空闲,也肯定会丢失内存

在哪里可以找到叮当返回码的含义?