gpt4 book ai didi

mysql 创建 View 列为 utf8_bin 而不是 utf8_general_ci

转载 作者:行者123 更新时间:2023-11-30 00:27:02 26 4
gpt4 key购买 nike

我正在尝试为我的数据库创建一个 View 。

CREATE VIEW `latest` AS
SELECT r.id as recheck_id, f.id as failure_id, r.`when`,
case
when r.description like _utf8'dummy' then f.description
else r.description
end as description,
case
when r.technician_id is null then f.technician_id
else r.technician_id
end as technician_id,
case
when r.technician_id is null then f.tname
else r.name
end as tech_name,
case
when r.technician_id is null then f.tsurname
else r.surname
end as tech_surname,
f.customer_id, f.name as cust_name, f.surname as cust_surname, f.area,
case
when r.telephone is null then f.telephone
else r.telephone
end as telephone, mobile,
f.appliance_id, f.type, f.model, f.brand,
f.budget, f.advance_payment, f.final_price
FROM rechecks_with_info r
left join failures_with_info f on f.id = r.failure_id
where `when` =
(select max(r2.`when`)
from rechecks r2
where r.failure_id = r2.failure_id)
order by `when` desc;

一切正常,直到我尝试在 description 列中搜索字符串

我收到“like”操作的排序规则 (utf8_bin,NONE) 和 (utf8_general_ci,COERCIBLE) 的非法混合错误。

我检查了特定列的排序规则,它确实默认设置为 utf8_bin。所有其他列均位于 utf8_general_ci 中。

有没有办法可以为 View 中的特定列指定所需的排序规则?

我尝试在 description 列定义后添加特定排序规则,但出现错误。

最佳答案

我不久前发现了这个问题并想到分享。

事实证明,读取的两个描述的表列不具有相同的排序规则。一个是 utf8_general_ci ,另一个是 utf8_unicode_ci 。他们的混合产生了 utf8_bin 整理列。

对两个表使用相同的排序规则产生了正确的结果。

关于mysql 创建 View 列为 utf8_bin 而不是 utf8_general_ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com