9

PHP を使用して、同じ内容の複数のアイテムを格納できる単純なデータベースを作成しました。DELETE を使用するときに、最初に出現したインスタンスを削除したいと考えています。

PHPを使用してSQLiteでDELETEのLIMITを有効にするにはどうすればよいですか?

4

4 に答える 4

26

select で limit を使用でき、次のように select と delete を組み合わせることができます。

DELETE FROM Foo
WHERE someColumn in
(
  SELECT someColumn FROM FOO WHERE SomeCondition LIMIT 200
)
于 2012-07-20T11:49:19.950 に答える
17
DELETE FROM table WHERE rowid = (SELECT rowid FROM table WHERE condition LIMIT 1 )
于 2012-10-01T13:12:37.037 に答える
12

これらのオプションを PHP 内から有効にすることはできません。これらのオプションを有効にするには、 SQLite を自分でコンパイルする必要があります。重要なのは、 SQLite ダウンロード ページから融合ソース リリースではなく、フル バージョンをダウンロードする必要があることです。

Unix を使用している場合は、sqlite-3.6.20.tar.gztarball を入手してダウンロードしてください。それで:

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サブディレクトリに配置します。

于 2009-12-01T07:29:56.947 に答える
3

ここから、SQLite のソース コードをコンパイルする必要があるようです。

#define SQLITE_ENABLE_UPDATE_DELETE_LIMIT

それを可能にするために。

于 2009-12-01T07:24:09.347 に答える