我正在用 PHP 在 postgresql 中生成一个表。
结果表
除第一列外,有很多行具有相同的值,这是唯一 ID。当我尝试根据 gene_id、searchterm 和 type 中的相似值进行删除时。
因此,我使用了如下代码:
$sql = "SELECT DISTINCT gene_id FROM searchterms";
或者
$sql = "SELECT DISTINCT ON (gene_id,searchterm,types) * FROM searchterms";
执行此代码后,我仍然得到相同的结果。我只想保留 ID 为 4 的行。
最佳答案
您要删除所有空行吗?
DELETE FROM searchterms WHERE gene_id = 0
对于具有重复项的非空行,您需要选择具有多个的行:
SELECT gene_d, COUNT(*) c FROM table GROUP BY name HAVING c > 1;
然后您可以从数组中弹出一个元素,然后删除其他 id。
要首先停止添加重复项,只需先执行 SELECT
查询,如果未找到任何行,则执行 INSERT
。
关于PHP - 根据列 postgresql 中的值删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50526025/