-
guqing commented on issue #45 in guqing/halo-theme-higan
-
guqing created a review on pull request #25 in halo-sigs/plugin-migrate
-
guqing opened issue #4372 in halo-dev/halo
What is version of Halo has the issue?
2.8.0
What database are you using?
MySQL 8.x
What is your deployment method?
Docker
Your site address.
No response
What happened?
当我在 Halo 中使用 MySQL 作为数据库时发现登陆时我的用户名为 guqing 但我使用 GUQING 能登陆只是权限不正确。
经过测试发现
select * from extensions where name = '/registry/users/Ghost'
能查询出
name='/registry/users/Ghost'
的数据,排除了数据库驱动的影响,因为 halo 使用的是 r2dbc 的驱动而我查询使用的是官方驱动。MySQL默认情况下是大小写不敏感的,这意味着在执行查询时,MySQL会忽略查询条件中的大小写差异。这种行为是由 MySQL 的默认字符集和校对规则所决定的。
在MySQL中,字符集和校对规则是用来确定如何比较和排序字符串的规则。如果使用的字符集和校对规则是不区分大小写的,那么在执行查询时,MySQL会将查询条件中的所有字符串都转换为相同的大小写形式,然后再进行比较。
而我希望查询中区分大小写,可以使用 BINARY 运算符来强制 MySQL 对字符串进行区分大小写的比较。例如,您可以使用以下查询来查询name字段值为
/registry/users/Ghost
的数据,而不会匹配到name
字段值为/registry/users/ghost
的数据:SELECT * FROM table_name WHERE BINARY name = '/registry/users/Ghost';
这将强制 MySQL 对 name 字段进行区分大小写的比较,只返回 name 字段值为
/registry/users/Ghost
的数据。Relevant log output
/kind bug /area core /milestone 2.8.x
Additional information
No response
-
guqing commented on issue #24 in halo-sigs/plugin-migrate
-
guqing created a review on pull request #4358 in halo-dev/halo
-
guqing created a review on pull request #4358 in halo-dev/halo
-
guqing created a review on pull request #4369 in halo-dev/halo
-
guqing created a review on pull request #4355 in halo-dev/halo
-
guqing created a review on pull request #20 in halo-sigs/plugin-photos
-
guqing created a review on pull request #4370 in halo-dev/halo