今回はMySQLでカラムの値が????になっている時に本来の値を表示する方法を解説します。

カラムの値を確認

下記のコマンドを叩きます。

SELECT * FROM テーブル名

下記の表示になったとします。

+----+------+---------------------+--------------------------------------------------------------+--------+------------+--------+---------------------+---------------------+
| id | name | email               | password                                                     | gender | birth_date | height | create_at           | update_at           |
+----+------+---------------------+--------------------------------------------------------------+--------+------------+--------+---------------------+---------------------+
|  4 | ???? | test001@example.com | $2a$10$OK/FOR84RuGJ4jLdK/eKwuuAFy1DzfPDYrSr.nmOKa815PTgCrrAK | male   | 1990-01-01 | 170.00 | 2026-10-18 06:58:29 | 2026-10-18 06:58:29 |
+----+------+---------------------+--------------------------------------------------------------+--------+------------+--------+---------------------+---------------------+
1 row in set (0.00 sec)

nameカラムの値が????になっているのが確認できます。

本来の値を表示する

下記のコマンドを叩きます。

SHOW VARIABLES LIKE 'character_set%';

下記の表示になったとします。

+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | latin1                         |
| character_set_connection | latin1                         |
| character_set_database   | utf8mb4                        |
| character_set_filesystem | binary                         |
| character_set_results    | latin1                         |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8mb3                        |
| character_sets_dir       | /usr/share/mysql-8.4/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)

「character_set_client」・「character_set_connection」が「latin1」になっているのが原因です。

下記のコマンドを叩きます。

SET NAMES utf8mb4;

これで「character_set_client」・「character_set_connection」が「utf8mb4」になります。

これで????が本来の値になります。