我有以下SQL表:
let tempScale: CGFloat = 3.0
tempShape.scale = SCNVector3(tempScale, tempScale, tempScale)
// grow from 1 to tempScale, then back to 1
let grow = SCNAction.scaleTo(tempScale, duration: 1)
let shrink = SCNAction.scaleTo(1, duration: 1)
let sequence = SCNAction.sequence([grow, shrink])
firstShape.run(SCNAction.repeatForever(sequence))
我想要的是根据“btype”逐渐增加“world”列中的值,例如每一行在“world”列中以值0开头 因为它是第一次插入“btype”列中的这个值,我想要的是检查是否已经插入了“btype”,以便“world”列不再假定值为0但是等等... 我想要实现的是,不能有两行共享同一个“btype”具有相同的“世界”,“btype”可以是相同但不是“世界”,它必须是不同的,我想要 它逐渐增加。
我该如何做这件事?
答案 0 :(得分:1)
E.g:
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(bid INT NOT NULL PRIMARY KEY
,btype INT NOT NULL
);
INSERT INTO my_table VALUES
( 1,1),
( 2,4),
( 5,5),
( 3,1),
( 4,2),
( 6,3),
( 7,2),
( 8,1),
( 9,2),
(10,1);
SELECT bid
, btype
, i
FROM
( SELECT x.*
, CASE WHEN @prev=btype THEN @i:=@i+1 ELSE @i:=0 END i
, @prev:=btype prev
FROM my_table x
,( SELECT @i:=0,@prev:=null) vars
ORDER
BY btype,bid
) n
ORDER
BY bid;
+-----+-------+------+
| bid | btype | i |
+-----+-------+------+
| 1 | 1 | 0 |
| 2 | 4 | 0 |
| 3 | 1 | 1 |
| 4 | 2 | 0 |
| 5 | 5 | 0 |
| 6 | 3 | 0 |
| 7 | 2 | 1 |
| 8 | 1 | 2 |
| 9 | 2 | 2 |
| 10 | 1 | 3 |
+-----+-------+------+
答案 1 :(得分:0)
我通常不会做这样的查询,所以我无法肯定地说,但之类的这应该可以解决这个问题。
@try
{
NSError *error;
NSString *url_string = [NSString stringWithFormat: @"http://Share/scripts/newjson.json"];
///Dummy URL
NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:url_string]];
NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"json: %@", json);
}
@catch (NSException *e)
{
NSLog(@"Internet not enabled");
//something went wrong
//populate the NSError object so it can be accessed
}
您甚至可以在传统的INSERT ... VALUES值列表中包含第3个选择表达式;但就像我说的那样,我通常不会这样做。 (我喜欢在插入之前首先检查的明显少数;但不能替代适当的唯一性约束。)