您的位置:首页 > 数据库 > MySQL

mysql关于通配符%%的优化

2016-12-28 12:24 211 查看
SELECT
t1.*, t2.MOBILE_PHONE AS MEMBER_PHONE,
t2. NAME

FROM
SIAC.USER_SERVICE_INFO t1

LEFT JOIN SIAC.MEMBERSHIP_INFO t2 ON t1.AUTH_ID = t2.AUTH_ID

AND t2.membership_type = 0

WHERE
1 = 1

AND (
t1.AUTH_ID LIKE CONCAT( '%', CONCAT('130528199201082414', '%'))
OR t2. NAME LIKE CONCAT( '%', CONCAT('130528199201082414', '%'))

)

ORDER BY t1.CREATED_TIME 

用时1.6几秒 

SELECT cc.*, bb.MOBILE_PHONE
FROM(

   SELECT a.* FROM SIAC.USER_SERVICE_INFO a 
INNER JOIN (
SELECT USER_SERVICE_SEQ FROM
SIAC.USER_SERVICE_INFO t1 WHERE t1.AUTH_ID LIKE CONCAT( '%', CONCAT('130528199201082414', '%') ) ) b 
ON a.USER_SERVICE_SEQ = b.USER_SERVICE_SEQ 

  ) cc
LEFT JOIN ( SELECT a.* FROM SIAC.MEMBERSHIP_INFO a
INNER JOIN (
SELECT AUTH_ID FROM SIAC.MEMBERSHIP_INFO t2
WHERE t2.AUTH_ID LIKE CONCAT( '%', CONCAT('130528199201082414', '%') ) ) b 
ON a.auth_id = b.auth_id
AND a.membership_type = 0
) bb ON cc.AUTH_ID = bb.AUTH_ID
ORDER BY cc.CREATED_TIME 
用时0.282S

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: