Sql 从数组中删除参数
有一个表w/列,称为“汽车”,在这个列中我有数组[奥迪,宝马,丰田,…,大众] 我想更新这张表,设置没有丰田、宝马阵列元素的汽车Sql 从数组中删除参数,sql,arrays,postgresql,Sql,Arrays,Postgresql,有一个表w/列,称为“汽车”,在这个列中我有数组[奥迪,宝马,丰田,…,大众] 我想更新这张表,设置没有丰田、宝马阵列元素的汽车 如何获得它,我想放置另一个数组并删除匹配的元素也许我可以帮助在python中使用pandas。假设,您希望删除包含要删除的元素的所有行。假设df是您的数据帧 import pandas as pd vals_to_delete = df.loc[(df['cars']== 'Audi') | (df['cars']== 'VW')] df = df.drop(va
如何获得它,我想放置另一个数组并删除匹配的元素也许我可以帮助在python中使用pandas。假设,您希望删除包含要删除的元素的所有行。假设df是您的数据帧
import pandas as pd
vals_to_delete = df.loc[(df['cars']== 'Audi') | (df['cars']== 'VW')]
df = df.drop(vals_to_delete)
或者你也可以这样做
df1 = df.loc'[(df['cars']!= 'Audi') | (df['cars']!= 'VW')]
在sql中,您可以使用
DELETE FROM table WHERE Cars in ('Audi','VW);
您可以取消阵列、筛选和重新聚集:
select t.*,
(select array_agg(car)
from unnest(t.cars) car
where car not in ( . . . )
) new_cars
from t;
如果要保留原始订单,请执行以下操作:
select t.*,
(select array_agg(u.car order by n)
from unnest(t.cars) with ordinality u(car, n)
where u.car not in ( . . . )
) new_cars
from t
您可以多次调用array_remove:
SELECT array_remove(
array_remove(
ARRAY['Audi', 'BMW', 'Toyota', 'Opel', 'VW'],
'Audi'
),
'BMW'
);
array_remove
------------------
{Toyota,Opel,VW}
(1 row)
请重新措辞,同时提供样本数据和所需输出,以获得答案。但我还有另一个任务,我想要更新表,最终结果看起来像是更新表set cars=result.new_cars from select t.*,选择array_aggcar from unnestable.cars cars where car not in。。。来自t的新车辆作为结果,其中result.id=cars.id