Doris與mysql語法對照,差異篇



## SQL語法差異:

### doris中不支持分組列再使用distinct

MSYQL:

```SQL
select DISTINCT mid from order_card_detail GROUP BY mid
```

DORIS:

```SQL
select mid from order_card_detail GROUP BY mid
```

doris執行異常:[Err] 1064 - errCode = 2, detailMessage = cannot combine SELECT DISTINCT with aggregate functions or GROUP BY



### mysql中 where后可直接 locate() 判斷,doris中需判斷

MYSQL:

```sql
select mid from order_card_detail where LOCATE(mid,'4')
```



DORIS:

```SQL
select mid from order_card_detail where LOCATE(mid,'4')>0
```

doris執行異常:[Err] 1064 - errCode = 2, detailMessage = WHERE clause requires return type 'BOOLEAN'. Actual type is 'INT'.



### doris 中編寫sql不支持 #注釋

MYSQL:

```SQL
#1233
select * from hopsonone_point.members_points_detail limit 100
```



DORIS:

```sql
--1233
select * from hopsonone_point.members_points_detail limit 100
```

doris執行異常:[Err] 1064 - errCode = 2, detailMessage = Please check your sql, we meet an error when parsing.



### mysql中支持部分多表聯查分組后跟部分字段,doris需將非聚合查詢字段都放在分組條件后

MYSQL:

```SQL
SELECT m_id,behavior,SUM(point)
FROM (
select m_id,behavior,point from hopsonone_point.members_points_detail limit 100
) t1
GROUP BY m_id;
```



DORIS:

```sql
SELECT m_id,behavior,SUM(point)
FROM (
select m_id,behavior,point from hopsonone_point.members_points_detail limit 100
) t1
GROUP BY m_id,behavior;
```

doris執行異常:[Err] 1064 - errCode = 2, detailMessage = select list expression not produced by aggregation output (missing from GROUP BY clause?): `behavior`


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM