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の行のみを保持したいと思います。
回答 4 件
Select * from searchterms WHERE gene_id <> 0 AND searchterm <> 0 AND types <> 0 group by gene_id,searchterm,types
そもそも挿入しないようにしてください。
例えば
if(geneid == 0){ break; }else{ # insert query}
この場合、distinctは機能しません。個別に指定した場合、2つのレコード、つまりgene_id = 0およびgene_id = 1253246が表示されるためです。
したがって、これらの他のレコードを回避するには、おそらくgene_id<>のような条件を確認する必要があります。 0またはgene_id> 0
関連記事
- 列の値に基づいて列を選択する
- Pythonの列の値に基づいてcsvファイルを2つのファイルに分割するにはどうすればよいですか?
- テーブルAの値に基づいてテーブルBの列に値を挿入する方法
- 値の既存の情報に基づいて列の値を変更しますか?
- 特定の列の値から新しい列を派生させる方法は?
- zplidとコードタイプに基づいて、列zfeaturekeyのすべての行で行のNULLを取得できませんか?
- 別の列の値をグループの2つの異なる要素に分割するにはどうすればよいですか?
- パンダ。列内の最大の10個の値を見つけるにはどうすればよいですか?
- 他の列に基づくシーケンスを含む新しいdf列を作成するにはどうすればよいですか?
- PySparkの列条件を使用してNULL値が置き換えられない
すべての空の行を削除しようとしていますか?
重複する空でない行については、複数の行を選択する必要があります。
次に、配列から1つの要素をポップしてから、他のIDを削除できます。
重複が最初に追加されるのを止めるには、単に
SELECT
を実行します 最初にクエリを実行し、行が見つからない場合は、INSERT
を実行します 。