私はデータベースを持っています。id - 主キーです。
id color
1 green
2 red
3 pink
4 pink
5 red
SQL で繰り返される色を削除するにはどうすればよいですか? 結果は次のようになります。
id color
1 green
2 red
3 pink
テーブルから重複を削除するには、次のようなステートメントを試してください。
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によって示されるように一意の制約を追加する必要があることをお勧めします
DISTINCT
次の方法で個別のアイテムを見つけるために使用する必要があります。
SELECT DISTINCT(color) FROM colors
テーブルから繰り返し色を削除したい場合は、
ALTER IGNORE TABLE colors ADD UNIQUE KEY idx1(color);
-ステートメントを使用してDISTINCT()
これを実現できます。例えば:
$sql = "SELECT DISTINCT(color) FROM colors";
より詳しい情報
DISTINCT 句を使用すると、結果セットから重複を削除できます。DISTINCT 句は、select ステートメントでのみ使用できます。
出典:ネットのTECH