SQL查询优化:使用IN关键字替换FIND_IN_SET函数
如果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 著作权归作者所有。请勿转载和采集!