如果SELECT 'push_label_id' FROM 'oss_push_trump'返回多条数据,您可以使用IN关键字来替换FIND_IN_SET函数。以下是修改后的查询语句:

SELECT 
    opt.*, 
    t.label_id, 
    t.label_name 
FROM 
    oss_push_trump opt
LEFT JOIN (
    SELECT 
        GROUP_CONCAT(label_id) AS label_id, 
        GROUP_CONCAT(label_name) AS label_name 
    FROM 
        uc_user_label 
    WHERE 
        uc_user_label.label_id IN (SELECT push_label_id FROM oss_push_trump)
) t ON opt.push_label_id = t.label_id

原因:

  • **FIND_IN_SET函数效率较低:**FIND_IN_SET函数需要遍历字符串,效率较低,特别是当字符串较长时。
  • **IN关键字效率更高:**IN关键字可以直接比较多个值,效率更高。

结论:

当SELECT 'push_label_id' FROM 'oss_push_trump'返回多条数据时,建议使用IN关键字来替换FIND_IN_SET函数,提高查询效率。


原文地址: https://www.cveoy.top/t/topic/o3G9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录