我在PostgerSQL中有一个表,我需要在表中创建N个条目两次,对于前半部分,我需要在partner_id字段中填充值1,而对于后半部分,我需要在partner_id字段中填充值2。
我试着
update USERS_TABLE set user_rule_id = 1;
update USERS_TABLE set user_rule_id = 2 where USERS_TABLE.id > count(*)/2;
`
我在PostgerSQL中有一个表,我需要在表中创建N个条目两次,对于前半部分,我需要在partner_id字段中填充值1,而对于后半部分,我需要在partner_id字段中填充值2。
我试着
update USERS_TABLE set user_rule_id = 1;
update USERS_TABLE set user_rule_id = 2 where USERS_TABLE.id > count(*)/2;
`
1条答案
按热度按时间lpwwtiir1#
我很大程度上取决于用户数量的准确性,必须更新为1或2。
下面的代码是非常不精确的,因为它没有采用已经存在的用户的确切数量8在删除了一些行之后,这些数字就不再适合了。
| 标识符|用户规则标识|
| - -|- -|
| 一个|一个|
| 2个|一个|
| 三个|2个|
| 四个|2个|
| 五个|2个|
如果您有许多已删除的行,但仍希望保留一半的用户,则可以选择以下方法,该方法确实依赖于id,但取决于实际的行号
第一个
| 标识符|用户规则标识|
| - -|- -|
| 一个|一个|
| 2个|一个|
| 三个|2个|
| 四个|2个|
| 五个|2个|
fiddle
在示例中,它的结果是相同的,但是当您有很多行和一堆已删除的用户时,senind会给您一个相当好的结果