我想从数据库表中删除重复项。
Databasename - > urls
Table - > url
我尝试了这个,但是没有用:
SELECT DISTINCT
url
FROM
urls;
表结构:
url website checked
答案 0 :(得分:0)
您不是SELECT
来自数据库。您执行查询以从表中读取行,这就是为什么您在尝试从数据库中选择表的方式中查询错误的原因。
这不是完成的方式。您应该连接到数据库,然后从表中选择列。
假设您在存储在数据库website
中的表url
中存储的表urls
中的列USE urls; -- for MySQL
.open "urls.db" -- for SQLite
中有重复项,因此假设您使用的是命令行工具,首先要连接到数据库(如果并非如此,只需在图形查询工具中选择它即可):
SELECT DISTINCT website
FROM url;
然后从url表中选择唯一的网站,如下所示:
*
如果您需要返回唯一的行(而不是一个列值),请使用SELECT DISTINCT *
FROM url;
:
wget
答案 1 :(得分:0)
“ url”是您的表名,因此它应位于关键字“ FROM”之后
类似这样的东西:
从网址中选择不同的*;
答案 2 :(得分:0)
您始终可以使用临时表来使自己更容易从表中真正删除重复项。
CREATE TABLE urls_temp
LIKE urls;
INSERT INTO urls_temp
SELECT DISTINCT *
FROM urls
GROUP BY url;
DROP TABLE urls;
ALTER TABLE urls_temp
RENAME TO urls;
如果您只想从隐藏隐藏重复项的数据库中获取数据,则可以执行以下操作:
SELECT DISTINCT *
FROM urls;
但是,从长远来看,您可以通过在列上设置约束或使其成为防止再次输入任何重复项的主键来确保唯一性。
答案 3 :(得分:0)
SQL查询以从websites
表中删除重复的url
,该表必须具有唯一字段-id
DELETE FROM url
WHERE
id NOT IN (SELECT
id
FROM
(SELECT
id
FROM
url
GROUP BY website
) AS x
)