PHP を使用して、同じ内容の複数のアイテムを格納できる単純なデータベースを作成しました。DELETE を使用するときに、最初に出現したインスタンスを削除したいと考えています。
PHPを使用してSQLiteでDELETEのLIMITを有効にするにはどうすればよいですか?
PHP を使用して、同じ内容の複数のアイテムを格納できる単純なデータベースを作成しました。DELETE を使用するときに、最初に出現したインスタンスを削除したいと考えています。
PHPを使用してSQLiteでDELETEのLIMITを有効にするにはどうすればよいですか?
select で limit を使用でき、次のように select と delete を組み合わせることができます。
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 )
これらのオプションを PHP 内から有効にすることはできません。これらのオプションを有効にするには、 SQLite を自分でコンパイルする必要があります。重要なのは、 SQLite ダウンロード ページから融合ソース リリースではなく、フル バージョンをダウンロードする必要があることです。
Unix を使用している場合は、sqlite-3.6.20.tar.gz
tarball を入手してダウンロードしてください。それで:
tar xzf sqlite-3.6.20.tar.gz
cd sqlite-3.6.20
export CFLAGS='-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1'
./configure
make
次に、sqlite3
コマンドライン ユーティリティとライブラリ ファイルを.libs
サブディレクトリに配置します。