2

私はデータベースを持っています。id - 主キーです。

id color
1 green
2 red
3 pink
4 pink
5 red

SQL で繰り返される色を削除するにはどうすればよいですか? 結果は次のようになります。

id color
1 green
2 red
3 pink
4

3 に答える 3

3

テーブルから重複を削除するには、次のようなステートメントを試してください。

DELETE FROM my_table 
WHERE EXISTS (
  SELECT 1 FROM my_table t2
  WHERE my_table.color = t2.color
  AND my_table.id > t2.id
)

英語:同じ色でIDが小さいmy_table別のレコードがある場所からすべてのレコードを削除します。my_tableこれにより、重複する色ごとに最小のIDでレコードが保持されます。

重複を削除した後、ここでLolCoderによって示されるように一意の制約を追加する必要があることをお勧めします

于 2012-07-22T12:03:42.757 に答える
2

DISTINCT次の方法で個別のアイテムを見つけるために使用する必要があります。

SELECT DISTINCT(color) FROM colors

テーブルから繰り返し色を削除したい場合は、

ALTER IGNORE TABLE colors ADD UNIQUE KEY idx1(color); 
于 2012-07-22T11:30:54.310 に答える
1

-ステートメントを使用してDISTINCT()これを実現できます。例えば:

$sql = "SELECT DISTINCT(color) FROM colors";

より詳しい情報

DISTINCT 句を使用すると、結果セットから重複を削除できます。DISTINCT 句は、select ステートメントでのみ使用できます。

出典:ネットのTECH

于 2012-07-22T11:28:29.573 に答える