📅  最后修改于: 2023-12-03 14:51:11.064000             🧑  作者: Mango
在 SQL 中重复是指在同一表中存在多个相同的记录。这种情况通常是因为数据插入或更新出现问题。在 TypeScript 中,我们可以通过编写相应的代码来检测和解决这个问题。
在 SQL 中,重复的记录可以通过使用 DISTINCT 关键字或 GROUP BY 语句来删除或合并。例如,下面的 SQL 语句将在表中查找唯一的城市名称:
SELECT DISTINCT city_name FROM cities;
在 TypeScript 中,我们可以使用以下代码来检测重复行:
interface City {
id: number;
city_name: string;
population: number;
}
const cities: City[] = [
{ id: 1, city_name: "New York", population: 8000000 },
{ id: 2, city_name: "Los Angeles", population: 4000000 },
{ id: 3, city_name: "New York", population: 8000000 },
];
function getDuplicateCities(cities: City[]): City[] {
return Object.values(
cities.reduce((acc, curr) => {
acc[curr.city_name] ??= [];
acc[curr.city_name].push(curr);
return acc;
}, {} as { [key: string]: City[] })
).filter((cities) => cities.length > 1).flat();
}
const duplicateCities = getDuplicateCities(cities);
console.log(duplicateCities);
在上面的代码中,我们首先声明了一个名为 City 的接口,该接口包含城市的 id、城市名称和人口数量。然后,我们声明了一个 cities 数组,其中有三个城市,其中两个城市的名称相同。
接下来,我们编写了一个名为 getDuplicateCities 的函数,该函数获取一个城市数组并返回包含重复城市的数组。该函数使用 reduce 方法来将城市按城市名称分组,并使用 filter 和 flat 方法来选择具有重复城市名称的组,并将它们展平到一个数组中。
最后,我们在控制台中输出了返回的重复城市数组。这个数组包含了名称相同的两个城市:New York。
以上就是关于在 SQL 中重复的介绍和在 TypeScript 中检测和解决这个问题的代码。