在过去的几个小时里,我一直在敲打我的脑袋,这似乎是一项非常简单的任务.
我的应用程序通过tcpip与服务器通信.该协议要求每个请求的前4个字节是流的长度,顺序相反.例如,如果长度为13,我需要提供(十进制){0,0,0,13}; 如果它是300,我需要提供{0,0,44,256}.然后,实际数据如下.
显然,这在Java中是非常简单的,在VB中也是如此(例如BitConverter.GetBytes(sendString.Length).Reverse().ToArray()).但是在obj-c中我无法使其工作,我已经尝试过NSString/NSData/NSArray之间的各种转换,没有运气.
提前致谢!
首先,这个问题的标题是可怕的,但我没有找到更好的方式来描述我的问题.
这可能是一种非常简单的方法,但我无法理解.这与这个问题非常相似,但是我在sqlite3(iOS)上运行,所以我怀疑我的选项更加有限.
我有一张包含产品记录的表格.所有记录都有一个ID(注意:我不是在谈论行ID,而是每个产品唯一的标识号).某些产品可能在表中有两个条目(两个具有相同的ID).唯一的区别在于一个特殊的列(假设列COLOR可以是RED或GREEN).
我想要做的是根据COLOR的值创建一个独特产品列表,如果同一产品同时存在GREEN和RED记录,则优先选择GREEN.
简而言之,如果我有以下情况:
id PRODUCT ID COLOUR
1 1001 GREEN
2 1002 GREEN
3 1002 RED
4 1003 RED
Run Code Online (Sandbox Code Playgroud)
我希望我的SELECT返回第1,2和4行.我怎样才能实现这一点?
我目前的方法是使用单独的表,并手动进行连接,但显然这是一个非常糟糕的主意.
注:我试图使用相同的方法从这里:
SELECT *
FROM xx
WHERE f_COLOUR = "GREEN"
UNION ALL
SELECT *
FROM xx
WHERE id not in (SELECT distinct id
FROM xx
WHERE f_COLOUR = "GREEN");
Run Code Online (Sandbox Code Playgroud)
但我得到的结果是1,2,3,4行而不是1,2,4行.我错过了什么?
编辑:还有一个问题:如何使用一部分记录,即.如果不是整个表我想过滤一些记录?
例如,如果我有SELECT*FROM table WHERE productID LIKE"1%"......我如何检索每个独特的产品,但仍然尊重颜色优先级(GREEN> RED)?