# [Know issues] TiDB 被客户端使用 gbk 链接时执行 SQL 报错 Can't find column Column

## Key Words

字符集, 链接串

## Description

复现步骤  

1. 使用默认字符集，以 ```mysql -h XXX -P 4020 -uroot -pxxx``` 方式连接 TiDB;  
2. 执行以下步骤，可正确查询结果：

    ```
    create database test;

    CREATE TABLE `t1` (
      `ID` char(2) COLLATE utf8mb4_bin NOT NULL,
      `NM` varchar(10) COLLATE utf8mb4_bin NOT NULL,
      PRIMARY KEY (`ID`,`NM`) /*T![clustered_index] NONCLUSTERED */
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

    CREATE TABLE `t2` (
      `ID` char(2) COLLATE utf8mb4_bin NOT NULL,
      `NB` char(2) COLLATE utf8mb4_bin NOT NULL,
      PRIMARY KEY (`ID`,`NB`) /*T![clustered_index] NONCLUSTERED */
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

    SELECT B.ID,B.NM,B.NB,1,20221218,4,0,0,0,0,0,'','0','',1,1,0,0,0,0,0,0 FROM test.t2 A,
    (
        SELECT ID,NM,
            case when substr(NM,1,1)='0' then 'Z1'
                 when substr(NM,1,1)='1' then 'Z4'
                 when substr(NM,1,3)='519' then 'J0'
                 when substr(NM,1,1)='5' then 'L0'
                 else 'A0' end as NB, 
         FROM test.t1 WHERE ID='SH'
    ) B
    WHERE A.ID=B.ID AND A.NB=B.NB;
    ```

3. 但使用 gbk 字符集，以 ```mysql -h XXX -P 4020 -uroot -p --default-character-set=gbk``` 方式连接 TiDB 执行最后一步查询，报错如下： 

```shell
ERROR 1105 (HY000): Can't find column Column#24 in schema Column: [test.t1.id,test.t1.nm] Unique key: [[test.t1.id,test.t1.nm]]
```

## Content

1. 该问题属于 TiDB BUG ，当 SQL 中使用 2 种字符集或因下推导致连接条件 2 侧字符集不一致时，部分字符集被错误转化并下推，报错 `Can't find column Column:`，详情参考 [issue](https://github.com/pingcap/tidb/issues/38736)。
2. 解决办法：升级至下述 Affected Versions 不包含的高版本，绕过该问题。

## Affected Versions

TiDB v6.1.0-6.1.2, v6.2., v5.3.x, v5.4.x, v6.3.0
