写出满足以下条件的mysql语句: 在不知道 GOODSCLASSGUID 、SITE_CODE 值的情况下排查 t_goodsclassexpandinfo 表 GOODSCLASSGUID and SITE_CODE 所有可能满足以下错误的数据 Expected one result (or null) to be returned by selectOne(), but found: 2 如果存在错误数据 删除其中一条
时间: 2023-08-10 19:36:39 浏览: 32
以下是满足条件的 MySQL 语句:
```
WITH cte AS (
SELECT
id,
ROW_NUMBER() OVER (PARTITION BY GOODSCLASSGUID, SITE_CODE ORDER BY id) AS rn
FROM
t_goodsclassexpandinfo
)
DELETE FROM
t_goodsclassexpandinfo
WHERE
id IN (
SELECT
id
FROM
cte
WHERE
rn > 1
);
```
该语句使用了 Common Table Expression (CTE) 和 ROW_NUMBER() 函数来对每个 GOODSCLASSGUID 和 SITE_CODE 组合的行进行编号。然后删除了编号大于 1 的行,保留了第一行或者为空的情况。这样可以保证每个 GOODSCLASSGUID 和 SITE_CODE 组合只有一个记录,从而避免了 "Expected one result (or null) to be returned by selectOne(), but found: 2" 的错误。
相关问题
在mysql服务器,写sql语句:找出pg_inquiry_detail表中estate_name字段并去重
可以使用如下的SQL语句:
```
SELECT DISTINCT estate_name FROM pg_inquiry_detail;
```
这条SQL语句将会查询pg_inquiry_detail表中的estate_name字段,并去重显示结果。使用DISTINCT关键字可以去掉结果中的重复值。
在mysql服务器,写sql语句:找出pg_inquiry_detail表中estate_name字段还有数字的,并去重
可以使用如下的SQL语句来找出pg_inquiry_detail表中estate_name字段还有数字的,并去重:
```
SELECT DISTINCT estate_name
FROM pg_inquiry_detail
WHERE estate_name REGEXP '[0-9]'
```
其中,`REGEXP '[0-9]'` 表示匹配estate_name字段中包含数字的记录。`DISTINCT`关键字用于去重,保证查询结果中每个estate_name只会出现一次。