MySQLコネクターでMySQL8.0をのデータベースのテーブルに対してSELECTすると、絞込条件で濁点や半濁点を指定していないにもかかわらず、濁点や半濁点を含む検索結果が返されない(濁点や半濁点が区別されない)場合があります。例えば、「ローコート」という条件で絞り込みを行おうとすると、「ローコート」と「ローコード」の両方が結果としてヒットしてしまいます。
原因
MySQL 8.0のデフォルトの照合順序(Collation)は utf8mb4_0900_ai_ci
デフォルトであるため。この照合順序は、濁点と半濁点を区別しないため、濁点・半濁点を含まない検索条件を指定しても、濁点・半濁点を含む結果が返される場合があります。
対応方法
MySQLの Select rowsアクションを利用する際、Where conditionにおいて、=
や like
の後に binary
を追加し、その後に検索したい値を指定します。
Workatoに限らず発生する可能性のある問題ですが、WorkatoからMySQLデータベースを利用される際は参考としていただければ幸いです。
参考