PHP - 根据列 postgresql 中的值删除行

标签 php postgresql select distinct

我正在用 PHP 在 postgresql 中生成一个表。

结果表

enter image description here

除第一列外,有很多行具有相同的值,这是唯一 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/

相关文章:

javascript - 使用 Jquery 在循环内动态乘以值

mysql - SQL为第一列的每个唯一行计算第二列

postgresql - 在带有 Sequelize 的 Where 语句中使用包含的模型

php - Mysqli IN 获取重复结果

php - 使用 XMLhttpRequest 加载的页面上的复选框

sql - 如何根据字符串 id 删除 PostgreSQL 数据库中的多行?

forms - Angular2 react 形式选择多个属性?

Javascript:从列表中获取选定的选项并将其粘贴到标签标记上

c# - LINQ子选择错误

javascript - PHP页面: Dropdown always selects the first value