हां, एक व्युत्पन्न तालिका करेगी। नीचे दिया गया आंतरिक चयन ब्लॉक एक व्युत्पन्न तालिका है। और प्रत्येक व्युत्पन्न तालिका को एक नाम की आवश्यकता होती है। मेरे मामले में, xDerived
.
रणनीति व्युत्पन्न तालिका को कॉलम नाम के उपयोग को साफ करने देना है। व्युत्पन्न खंड से बाहर आना num
. नामक एक साफ स्तंभ है जिसका बाहरी चयन उपयोग करने के लिए स्वतंत्र है।
स्कीमा
create table employee
( id int auto_increment primary key,
experience varchar(20) not null
);
-- truncate table employee;
insert employee(experience) values
('4-5'),('7-1'),('4-1'),('6-5'),('8-6'),('5-9'),('10-4');
क्वेरी
select id,experience,num
from
( SELECT id,experience,
CONVERT(SUBSTRING_INDEX(experience,'-',1),UNSIGNED INTEGER) AS num
FROM employee
) xDerived
where num>=7;
परिणाम
+----+------------+------+
| id | experience | num |
+----+------------+------+
| 2 | 7-1 | 7 |
| 5 | 8-6 | 8 |
| 7 | 10-4 | 10 |
+----+------------+------+
ध्यान दें, आपका @num
अवधारणा दोषपूर्ण थी लेकिन उम्मीद है कि मैंने व्याख्या की कि आप ऊपर क्या करना चाहते हैं।
साथ ही, मैं 7 नहीं 3 के साथ गया क्योंकि आपका सारा नमूना डेटा वापस आ गया होगा, और मैं आपको दिखाना चाहता था कि यह काम करेगा।