1

整数値を持つテーブルがあります。私のアプリケーションには、ユーザーが希望する番号を入力して検索するテキスト フィールドがあります。ユーザーが英語で番号を入力しても問題ありません。しかし、彼のキーボードが英語ではなく、テーブル mysql に存在する番号を入力すると、それが見つかりません。ユーザー入力を英語の数字に変換するようにアプリケーションを変更できません。mysql でこの問題を解決する方法はありますか (構成、テーブル構造など)?

たとえば、データベースに次のレコードがあります。

Order_number = 112, ...

ユーザーが英語で 112 を検索すると、mysql は上記の行を返します。ただし、ユーザーがたとえばペルシア語で 112 を入力すると(۱۱۲)、mysql は空のセットを返します。

4

2 に答える 2

1

最悪の場合、次のようなことができます

... where 112 = replace('۱', 1, replace('۲', 2, 'user input here'));

すべての入力の数値表現には 10 桁の異なる数字があると想定していますが、数字を表すために異なる文字を使用しているだけです。

于 2012-12-18T01:13:50.640 に答える
1

直接ではありません。

mysql> SELECT CAST(112 AS CHAR) = '۱۱۲' COLLATE utf8_unicode_ci;
+------------------------------------------------------+
| CAST(112 AS CHAR) = '۱۱۲' COLLATE utf8_unicode_ci    |
+------------------------------------------------------+
|                                                    1 |
+------------------------------------------------------+
1 row in set (0.00 sec)
于 2012-12-18T01:10:30.797 に答える