9

使用 PHP,我有一个简单的数据库,可以存储具有相同内容的多个项目。我想在使用 DELETE 时删除第一次出现的实例。

如何使用 PHP 在 SQLite 中为 DELETE 启用 LIMIT?

4

4 回答 4

26

您可以将限制与选择一起使用,您可以将选择和删除结合起来,例如:

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 回答