1

我有一个带有整数值的表。在我的应用程序中有一个文本字段,用户可以输入他想要的号码进行搜索。如果用户输入英文数字没有问题。但是如果他的键盘不是英文并且输入了一个存在于表 mysql 中的数字,则找不到它。我无法更改应用程序以将用户输入转换为英文数字。有没有办法在mysql(配置,表结构等)中解决这个问题?

例如我在数据库中有这条记录:

Order_number = 112, ...

如果用户用英文搜索 112,mysql 返回上面的行。但是如果用户输入 112 例如在 persian(112) mysql 将返回一个空集。

4

2 回答 2

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 回答
1

最坏的情况,你可以做类似的事情

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

我假设所有输入在其数字表示中都有 10 个不同的数字,只是它们使用不同的字符来表示数字。

于 2012-12-18T01:13:50.640 回答