Как я могу удалить данные с определенным номером строки (sqlite)

MATLAB: 182 167 156 символов

Скрипт ulam.m:

A=1;b=ones(1,4);for i=0:(input('')-2),c=b(4);b=b+i*8+(2:2:8);A=[b(2):-1:b(1);(b(2)+1:b(3)-1)' A (b(1)-1:-1:c+1)';b(3):b(4)];end;disp(char(isprime(A)*10+32))

И отформатирован немного лучше:

A = 1;
b = ones(1,4);
for i = 0:(input('')-2),
  c = b(4);
  b = b+i*8+(2:2:8);
  A = [b(2):-1:b(1); (b(2)+1:b(3)-1)' A (b(1)-1:-1:c+1)'; b(3):b(4)];
end;
disp(char(isprime(A)*10+32))

Тестовые случаи:

>> ulam
2
* *
  *
*  
>> ulam
3
*   *
 * * 
*  **
 *   
  *  
>> ulam
5
    * *  
 *     * 
* *   *  
   * * * 
  *  ** *
 * *     
*   *    
 *   *   
*     *  
5
задан Sam 10 August 2014 в 17:22
поделиться

2 ответа

Я предполагаю, что вы хотите удалить «первые 1000 строк» ​​с учетом несортированного порядка результатов запроса «select» без аргументов сортировки и критериев , и в этом случае вы делаете что-то не так.

Но в качестве академического упражнения вот как вы это сделаете. Все строки в SQLite имеют поле rowid , которое вы можете использовать, чтобы найти, где заканчиваются эти 1000 строк.

sqlite> create table t(s string);
sqlite> insert into t values('a1');
sqlite> insert into t values('a2');
sqlite> insert into t values('a3');
sqlite> insert into t values('a4');
sqlite> select * from t;
a1
a2
a3
a4
sqlite> delete from t where rowid < (select rowid from t limit 2,1);
sqlite> select * from t;
a3
a4
9
ответ дан 18 December 2019 в 13:16
поделиться

http://www.sqlite.org/lang_delete.html

Если у вас был включен лимит на удаление обновлений SQLite

Delete from your_table 
where any_filter_you_wanted_as_well 
order by if_you_have_a_preference
limit 1000
5
ответ дан 18 December 2019 в 13:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: