0

テーブルのすべての列(パラメーター1)を検索して、いずれかの列に文字列(パラメーター2)が含まれているかどうかを確認するMYSQLストアドプロシージャを作成しました。問題は、日時列をギリシャ文字を含む文字列と比較すると、次のエラーが発生することです。

SELECT * FROM my_table WHERE my_datetime LIKE'%ΕΛΛΗΝΙΚΑ%';
「のような」操作のための照合の違法な組み合わせ

ラテン文字を使用すると、クエリの実行は成功します。データ型に基づいて列をチェックしないようにする方法は知っていますが、日時文字列も検索できるようにしたいと思っています。MySQL5.5.24を使用しています。データベースの照合はutf8_general_ciであり、サーバーの照合はlatin1_swedish_ciです。クエリの前にコマンドSETNAMESutf8を試しましたが、うまくいきませんでした。何か案は?ありがとう。

4

1 に答える 1

2

同様のクエリで問題が発生しました:

SELECT * FROM some_table WHERE some_date LIKE '%2012-01%';

その結果、「照合の不正な組み合わせ」エラーが発生しました。

単にDATE_FORMAT関数を使用すると、次のことが役立ちます。

SELECT * FROM some_table WHERE DATE_FORMAT(some_date, '%Y-%m-%d') LIKE '%2012-01%';
于 2012-11-15T08:24:38.100 に答える