Come si abilita LIMIT per DELETE in SQLite?

Usando PHP, ho un semplice database che può memorizzare più oggetti con lo stesso contenuto. Voglio eliminare la prima occorrenza di un’istanza quando utilizzo DELETE.

Come abilitare LIMIT per DELETE in SQLite usando PHP?

Non è ansible abilitare queste opzioni da PHP, è necessario compilare SQLite per abilitare queste opzioni. È importante sottolineare che è necessario scaricare la versione completa, non la versione sorgente di amalgamazione dalla pagina di download di SQLite .

Se sei su Unix, sqlite-3.6.20.tar.gz tarball sqlite-3.6.20.tar.gz e scaricalo. Poi:

 tar xzf sqlite-3.6.20.tar.gz cd sqlite-3.6.20 export CFLAGS='-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1' ./configure make 

Quindi avrai l’ sqlite3 della sqlite3 comando sqlite3 ei file della libreria nella sottodirectory .libs .

Puoi usare il limite con select e puoi combinare select ed delete come:

 DELETE FROM Foo WHERE someColumn in ( SELECT someColumn FROM FOO WHERE SomeCondition LIMIT 200 ) 
 DELETE FROM table WHERE rowid = (SELECT rowid FROM table WHERE condition LIMIT 1 ) 

Da qui , sembra che devi compilare il codice sorgente SQLite usando

 #define SQLITE_ENABLE_UPDATE_DELETE_LIMIT 

per consentirglielo.