Ya, tabel turunan akan berfungsi. Blok pilih bagian dalam di bawah ini adalah tabel turunan. Dan setiap tabel turunan membutuhkan nama. Dalam kasus saya, xDerived
.
Strateginya adalah membiarkan tabel turunan membersihkan penggunaan nama kolom. Keluar dari potongan turunan adalah kolom bersih bernama num
yang pilihan luarnya bebas digunakan.
Skema
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');
Kueri
select id,experience,num
from
( SELECT id,experience,
CONVERT(SUBSTRING_INDEX(experience,'-',1),UNSIGNED INTEGER) AS num
FROM employee
) xDerived
where num>=7;
Hasil
+----+------------+------+
| id | experience | num |
+----+------------+------+
| 2 | 7-1 | 7 |
| 5 | 8-6 | 8 |
| 7 | 10-4 | 10 |
+----+------------+------+
Perhatikan, @num
. Anda konsepnya salah tapi mudah-mudahan saya menafsirkan apa yang Anda maksudkan di atas.
Juga, saya menggunakan 7 bukan 3 karena semua data sampel Anda akan kembali, dan saya ingin menunjukkan kepada Anda bahwa itu akan berhasil.