php - SQL 排序规则不起作用

标签 php mysql sql utf-8 collation

我正在尝试将一些utf8编码的数据插入到mysql数据库中。特殊字符在浏览器中正确显示,但在我的数据库中不正确显示。手动将排序规则更改为 utf8_unicode_ci 并确认“此操作将尝试将您的数据转换为新的排序规则”后,数据将正确显示。但是,如果我使用创建表

CREATE TABLE IF NOT EXISTS table_name (
  date date NOT NULL,
  searchengine VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  location VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  keyword VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  position INT NOT NULL,
  competition VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  url VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL    
)

建表后插入数据,即使集合是utf8_unicode_ci,数据仍然无法正确显示。关于如何解决这个问题有什么想法吗?

最佳答案

排序规则是一组定义如何对字符串进行比较和排序的规则。 MySQL 中的每个排序规则都属于一个字符集。每个字符集至少有一种排序规则,大多数字符集有两种或多种排序规则。排序规则根据权重对字符进行排序。

utf8mb4_unicode_ci基于Unicode标准进行排序和比较,可以在非常广泛的语言中准确排序。

关于php - SQL 排序规则不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400856/

相关文章:

python - 使用 pandas 和 sqldf 并收到一个不起眼的错误

javascript - 如何克服将单个静态值传递给函数的问题?

php - 在命名空间中定义 Controller 仍然 Class App\Http\Controllers 在 laravel 5.5 中发生错误

php - Ajax 返回 null

php - 将 pdf 从 blob 嵌入到 html/php 页面

mySQL查询具有多个键的表

php - SOAP 调用在 SoapUI 中有效,但在使用 soapclient 的 PHP 中失败 - 对象引用问题

javascript - 从基于数组的多选选项中选择一些值

c# - 自定义 MySQL session 存储提供程序 - 反序列化问题

sql - 搜索数据库中包含特定列的所有表