आप अपने WHERE क्लॉज में कॉलम एलियासेस का उपयोग नहीं कर सकते हैं - इसके अलावा, कुछ मामलों में, वे एक्सप्रेशन हमेशा TRUE का मूल्यांकन करते हैं, इसलिए मुझे नहीं पता कि वहां क्यों हैं।
शायद आपका मतलब:
SELECT SQL_CALC_FOUND_ROWS
_posts.ID
,MID(
CAST(_postmeta.meta_value AS CHAR),
POSITION(';s:6:\"weight' IN CAST(_postmeta.meta_value AS CHAR) ),
10
) AS dres
FROM _posts
INNER JOIN _postmeta ON (_posts.ID = _postmeta.post_id)
WHERE 1=1
AND _posts.post_type = 'dog' AND _posts.post_status = 'publish'
AND _postmeta.meta_key = '_meta_general'
AND POSITION(';s:6:\"weight' IN CAST(_postmeta.meta_value AS CHAR)) > 0
GROUP BY dres ORDER BY _postmeta.meta_value ASC LIMIT 0, 10