質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

2回答

675閲覧

WHERE句で日本語の比較がうまくできない

FoolHotari

総合スコア79

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2022/06/12 09:05

編集2022/06/12 09:09

前提

MySQLの勉強をしています。日本語を含む条件でSELECTしようとしたところ、マッチしませんでした。どうすれば解決できるのかご教授願います。

実現したいこと

日本語を含む条件でSELECT

発生している問題・エラーメッセージ

以下がリクエストのログです。

MySQL

1MariaDB [db]> SHOW VARIABLES LIKE 'chara%'; 2+--------------------------+-----------------------------------------------+ 3| Variable_name | Value | 4+--------------------------+-----------------------------------------------+ 5| character_set_client | utf8mb4 | 6| character_set_connection | utf8mb4 | 7| character_set_database | utf8mb4 | 8| character_set_filesystem | binary | 9| character_set_results | cp932 | 10| character_set_server | utf8mb4 | 11| character_set_system | utf8mb3 | 12| character_sets_dir | C:\Program Files\MariaDB 10.6\share\charsets\ | 13+--------------------------+-----------------------------------------------+ 148 rows in set (0.000 sec) 15 16MariaDB [db]> STATUS 17-------------- 18 19Connection id: 5 20Current database: db 21Current user: root@localhost 22SSL: Not in use 23Current pager: stdout 24Using outfile: '~.txt' 25Using delimiter: ; 26Server: MariaDB 27Server version: 10.6.8-MariaDB mariadb.org binary distribution 28Protocol version: 10 29Connection: localhost via TCP/IP 30Server characterset: utf8mb4 31Db characterset: utf8mb4 32Client characterset: utf8mb4 33Conn. characterset: utf8mb4 34TCP port: 3307 35Uptime: 1 hour 8 min 29 sec 36 37Threads: 1 Questions: 196 Slow queries: 0 Opens: 49 Open tables: 20 Queries per second avg: 0.047 38-------------- 39 40MariaDB [db]> SHOW COLUMNS FROM DetailT; 41+---------+----------------------+------+-----+---------+-------+ 42| Field | Type | Null | Key | Default | Extra | 43+---------+----------------------+------+-----+---------+-------+ 44| OrderID | char(5) | NO | PRI | NULL | | 45| Item | varchar(20) | NO | PRI | NULL | | 46| Price | int(10) unsigned | NO | | NULL | | 47| Qty | smallint(5) unsigned | NO | | NULL | | 48+---------+----------------------+------+-----+---------+-------+ 494 rows in set (0.008 sec) 50 51MariaDB [db]> SELECT * FROM DetailT; 52+---------+------------------+-------+-----+ 53| OrderID | Item | Price | Qty | 54+---------+------------------+-------+-----+ 55| 16001 | テーブルタップ | 2 | 4 | 56| 16001 | ディスプレイ | 45 | 2 | 57| 16001 | ハードディスク | 50 | 1 | 58| 16001 | パソコン | 100 | 2 | 59| 16002 | SDメモリカード | 10 | 2 | 60| 16002 | ディジタルカメラ | 30 | 1 | 61| 16003 | パソコン | 90 | 3 | 62| 16003 | フィルター | 6 | 2 | 63| 16004 | キャリアー | 5 | 1 | 64| 16004 | ディスプレイ | 40 | 3 | 65| 16004 | ノートパソコン | 190 | 1 | 66| 16004 | バッテリー | 9 | 1 | 67+---------+------------------+-------+-----+ 6812 rows in set (0.000 sec) 69 70MariaDB [db]> SELECT * FROM DetailT WHERE OrderID = '16001'; 71+---------+----------------+-------+-----+ 72| OrderID | Item | Price | Qty | 73+---------+----------------+-------+-----+ 74| 16001 | テーブルタップ | 2 | 4 | 75| 16001 | ディスプレイ | 45 | 2 | 76| 16001 | ハードディスク | 50 | 1 | 77| 16001 | パソコン | 100 | 2 | 78+---------+----------------+-------+-----+ 794 rows in set (0.000 sec) 80 81MariaDB [db]> SELECT * FROM DetailT WHERE Item = 'パソコン'; 82Empty set (0.000 sec) 83 84MariaDB [db]> SELECT * FROM DetailT WHERE Item LIKE 'SD%'; 85+---------+----------------+-------+-----+ 86| OrderID | Item | Price | Qty | 87+---------+----------------+-------+-----+ 88| 16002 | SDメモリカード | 10 | 2 | 89+---------+----------------+-------+-----+ 901 row in set (0.000 sec) 91 92MariaDB [db]> SELECT * FROM DetailT WHERE Item LIKE 'SDメ%'; 93Empty set (0.000 sec) 94 95MariaDB [db]> SELECT * FROM DetailT WHERE Qty = 1; 96+---------+------------------+-------+-----+ 97| OrderID | Item | Price | Qty | 98+---------+------------------+-------+-----+ 99| 16001 | ハードディスク | 50 | 1 | 100| 16002 | ディジタルカメラ | 30 | 1 | 101| 16004 | キャリアー | 5 | 1 | 102| 16004 | ノートパソコン | 190 | 1 | 103| 16004 | バッテリー | 9 | 1 | 104+---------+------------------+-------+-----+ 1055 rows in set (0.000 sec)

設定ファイル

my.ini

1[mysqld] 2datadir=C:/Program Files/MariaDB 10.6/data 3port=3307 4innodb_buffer_pool_size=2037M 5character-set-server=utf8mb4 6[client] 7port=3307 8default-character-set=utf8mb4 9plugin-dir=C:\Program Files\MariaDB 10.6/lib/plugin

試したこと

補足情報(FW/ツールのバージョンなど)

OS: Windows 10 Home 21H2
MariaDB 10.6

character_set_resultscp932なのはコマンドプロンプトを使用していて、SELECTの出力を文字化けさせないためです。
逆にchcp 65001すると日本語を含むリクエストが送れなくなってしまいます。

default-character-set=utf8mb4[client]に追加しているのは、そうしないとUTF-8の.sqlファイルが文字化けして読み込めなかったからです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

コマンドラインでMySQLをテストしようとしていますか?
XAMPPなどでphpMyAdminなどGUIツールかつUTF8が使えるクライアントでやってください

投稿2022/07/05 08:34

yambejp

総合スコア114915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

character_set_clientcp932にすることで解決しました。

MariaDB [db]> SET character_set_client = 'cp932'; Query OK, 0 rows affected (0.000 sec) MariaDB [db]> SET character_set_results = 'cp932'; Query OK, 0 rows affected (0.000 sec) MariaDB [db]> SHOW VARIABLES LIKE 'chara%'; +--------------------------+-----------------------------------------------+ | Variable_name | Value | +--------------------------+-----------------------------------------------+ | character_set_client | cp932 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | cp932 | | character_set_server | utf8mb4 | | character_set_system | utf8mb3 | | character_sets_dir | C:\Program Files\MariaDB 10.6\share\charsets\ | +--------------------------+-----------------------------------------------+ 8 rows in set (0.000 sec) MariaDB [db]> SELECT * FROM DetailT WHERE Item = 'パソコン'; +---------+----------+-------+-----+ | OrderID | Item | Price | Qty | +---------+----------+-------+-----+ | 16001 | パソコン | 100 | 2 | | 16003 | パソコン | 90 | 3 | +---------+----------+-------+-----+ 2 rows in set (0.000 sec)

投稿2022/06/12 09:18

FoolHotari

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FoolHotari

2022/06/12 09:34

UTF-8の.sqlファイルが読み込めはするものの、日本語が文字化けして挿入されるようになってしまいました。 もう面倒くさいので、.sqlファイルはShift-JISに変換してから読み込むように妥協しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問