如何在SQLite中启用LIMIT for DELETE?

时间:2009-12-01 07:10:45

标签: sqlite limit sql-delete

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

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

4 个答案:

答案 0 :(得分:19)

您可以使用限制选择,您可以组合选择和删除,如:

DELETE FROM Foo
WHERE someColumn in
(
  SELECT someColumn FROM FOO WHERE SomeCondition LIMIT 200
)

答案 1 :(得分:12)

DELETE FROM table WHERE rowid = (SELECT rowid FROM table WHERE condition LIMIT 1 )

答案 2 :(得分:9)

您无法在PHP中启用这些选项,您需要自己编译SQLite 才能启用这些选项。重要的是,您需要从SQLite download page下载完整版,而不是合并源版。

如果您使用的是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命令行实用程序和库文件。

答案 3 :(得分:3)

here开始,您似乎必须使用

编译SQLite源代码
#define SQLITE_ENABLE_UPDATE_DELETE_LIMIT

为了启用它。