我正在使用MySql C并执行各种查询,我发现每次查看查询以查看列排序都很不方便。此外,在查询编辑的情况下,这种方法很容易出错。
,我可以通过查询每一列序号来分配什么吗?
如果没有,是否有更方便的方法通过C检索结果?(目前使用mysql_fetch_row并使用下标运算符访问列id )。
请不要让我阅读类似的问题是否可以对mysql SELECT语句中返回列的顺序进行排序?,但我发现它与我的情况不同,因为我需要指定任意数量的列序号。
编辑:
现状
查询:SELECT A.a, A.b, A.c FROM tbl1 A INNER JOIN tbl2 B ON B.id = A.B_id
C代码:
...
MYSQL_ROW row = mysql_fetch_row(result);
unsigned long *lengths = mysql_fetch_lengths(result);
...
int field1 = atoi(row[0]);
memcpy(row[1], field2, lengths[1]);
..continue for each row..理想情境
查询:SELECT A.a ORDINAL 1, A.b ORDINAL 2, A.c ORDINAL 3 FROM tbl1 A INNER JOIN tbl2 B ON B.id = A.B_id
C代码:与上面相同。
其中ORDINAL语句是伪SQL语句,允许按意愿排序返回的列。
发布于 2016-10-12 16:06:03
我已经很久没有编写C代码了,很抱歉我没有给出答案,也没有发表任何评论(还不够多),但是mysql_fetch_field_direct()可能会有帮助吗?
发布于 2016-10-12 16:38:33
我不知道你想要什么,但也许这有用:
SELECT A.a AS 1, A.b AS 2, A.c AS 3 FROM tbl1 A INNER JOIN tbl2 B ON B.id = A.B_id这将返回您想要的字段,名称为"1“、"2”、"3“等等。(我不确定是否接受只有数字的列名。)
https://stackoverflow.com/questions/40001650
复制相似问题