Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak porównać zmienną zestawu użytkownika w MySQL?

Tak, wystarczy tabela pochodna. Poniższy wewnętrzny blok wyboru jest tabelą pochodną. A każda tabela pochodna potrzebuje nazwy. W moim przypadku xDerived .

Strategia polega na umożliwieniu tabeli pochodnej wyczyszczenia użycia nazwy kolumny. Z fragmentu pochodnego wychodzi czysta kolumna o nazwie num którego zewnętrzny wybór jest bezpłatny.

Schemat

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');

Zapytanie

select id,experience,num 
from 
(   SELECT id,experience, 
    CONVERT(SUBSTRING_INDEX(experience,'-',1),UNSIGNED INTEGER) AS num  
    FROM employee  
) xDerived 
where num>=7;

Wyniki

+----+------------+------+
| id | experience | num  |
+----+------------+------+
|  2 | 7-1        |    7 |
|  5 | 8-6        |    8 |
|  7 | 10-4       |   10 |
+----+------------+------+

Uwaga, Twój @num koncepcja była błędna, ale mam nadzieję, że zinterpretowałem to, co zamierzałeś zrobić powyżej.

Poza tym wybrałem 7, a nie 3, ponieważ wszystkie Twoje przykładowe dane zostałyby zwrócone i chciałem pokazać, że to zadziała.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. wysyłanie masowych smsów zatrzymuje się w połowie

  2. Funkcja kanoniczna EntityFunctions.TruncateTime nie istnieje w MYSQL

  3. mysql - WSTAW zakres dat do kolumn dat JEŚLI daty nie pokrywają się z istniejącymi

  4. mysql wybierz z n ostatnich wierszy

  5. Problemy z RODBC sqlSave