- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 MySQL 中,我的数据库和表的排序规则是 utf8_persian_ci。此特定排序规则与 utf8_general_ci 不同,认为“1”、“2”、“3”、...和“1”、“2”、“3”、...(后者是波斯数字格式)具有相同的权重.相同的权重意味着在搜索查询中应该返回波斯语和拉丁语格式。尽管我的数据库、表甚至 collation_server(我在 my.cnf 中定义了它)都是 utf8_persian_ci,但我的搜索查询不会同时返回波斯语和拉丁语数字:
表:
--------
| col |
|--------|
| 1 |
|--------|
| ۱ |
----------
(col类型为varchar)
查询:
SELECT * FROM my_tbl tbl where tbl.col like "1"
结果:
--------
| col |
|--------|
| 1 |
|--------|
我发现以下查询返回了我想要的结果:
SELECT * FROM my_tbl tbl where tbl.col like "1" collate utf8_persian_ci
哪个返回:
--------
| col |
|--------|
| 1 |
|--------|
| ۱ |
----------
我的第一个问题是,尽管 MySQL 服务器和数据库的默认排序规则是 utf8_persian_ci,但我无法弄清楚为什么我必须编写 collate utf8_persian_ci。
我的第二个问题是我正在处理的应用程序正在使用 JPA。所以我写的查询是 JPQL,它不支持 collate utf8_persian_ci。我需要一个等价代码来在 JPQL 中collate utf8_persian_ci 或者我应该配置 MySQL 在查询结束时不使用 collate utf8_persian_ci 并获得指定的结果。
最佳答案
虽然服务器、数据库和表的默认排序规则可能是utf8_persian_ci
,但此类默认已被列本身的定义覆盖。
您可以在列上强制使用所需的排序规则;例如:
ALTER TABLE my_tbl MODIFY col VARCHAR(123) COLLATE utf8_persian_ci
关于java - MySQL 不会在搜索查询中同时返回波斯语和英语数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613127/
我使用 Highcharts 绘制一些图表。我的语言是波斯语(波斯语),我想用波斯数字绘制图表。但是在 Highcharts 中,所有数字都以英文显示。 有没有办法用波斯语显示数字(所有数字:yaxi
我是一名优秀的程序员,十分优秀!