一列最终在视图中具有不同的排序规则

问题描述 投票:0回答:0

我遇到了一些奇怪的问题。我的数据库设置为 utf8mb4_unicode_ci 排序规则。该数据库中的 (WooCommerce) 表也是如此。表格中的列也在 utf8mb4_unicode_ci.

我已经创建了一个视图,现在为计算字段 sku_class 获得了不同的排序规则(如 utf8mb4_general_ci)。这怎么可能?而且,更重要的是,我该如何解决它?

创建视图的简短查询是:

SET character_set_connection = 'utf8mb4';

CREATE VIEW vw_wc_product_details AS 

SELECT
        pm.sku,
        ( CASE
            -- manual fixes 
            WHEN pm.sku LIKE 'AB1404/%' THEN 'c'    
            -- default rules
            WHEN pm.sku LIKE 'ABs__-_%' THEN 's'    
            WHEN pm.sku LIKE 'ABt__-_%' THEN 't'
            WHEN pm.sku LIKE 'AB____/%' THEN 'pc'  
            WHEN ( SELECT COUNT(sku) FROM wp_wc_product_meta_lookup WHERE sku LIKE CONCAT(pm.sku, '/_%') ) >= 1 THEN 'p' 
            WHEN pm.sku LIKE 'AB____%' AND LENGTH(pm.sku) = 6 THEN 'c' 
            WHEN pm.sku LIKE 'AX%' AND LENGTH(pm.sku) >= 6 THEN 'm'
            ELSE 'x'
        END ) as sku_class
    
FROM    wp_wc_product_attributes_lookup AS pa
LEFT    JOIN wp_terms AS t ON pa.term_id = t.term_id
LEFT    JOIN wp_wc_product_meta_lookup AS pm ON pa.product_id = pm.product_id
LEFT    JOIN wp_posts AS p ON pa.product_id = p.ID

COLLATE 'utf8mb4_unicode_ci'

SET character_set_connection = 'utf8mb4';
COLLATE 'utf8mb4_unicode_ci'
行已添加,因为我收到了非法混合排序规则错误,这让我开始仔细检查所有相关内容的排序规则。

mysql mariadb collation
© www.soinside.com 2019 - 2024. All rights reserved.