SQL/LEETCODE

[1527] Patients With a Condition

소금깨 2022. 7. 14. 23:51
 

Patients With a Condition - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

Table: Patients

+--------------+---------+
| Column Name  | Type    |
+--------------+---------+
| patient_id   | int     |
| patient_name | varchar |
| conditions   | varchar |
+--------------+---------+
patient_id is the primary key for this table.
'conditions' contains 0 or more code separated by spaces. 
This table contains information of the patients in the hospital.

 

Write an SQL query to report the patient_id, patient_name all conditions of patients who have Type I Diabetes. Type I Diabetes always starts with DIAB1 prefix

Return the result table in any order.

The query result format is in the following example.

 

Example 1:

Input: 
Patients table:
+------------+--------------+--------------+
| patient_id | patient_name | conditions   |
+------------+--------------+--------------+
| 1          | Daniel       | YFEV COUGH   |
| 2          | Alice        |              |
| 3          | Bob          | DIAB100 MYOP |
| 4          | George       | ACNE DIAB100 |
| 5          | Alain        | DIAB201      |
+------------+--------------+--------------+
Output: 
+------------+--------------+--------------+
| patient_id | patient_name | conditions   |
+------------+--------------+--------------+
| 3          | Bob          | DIAB100 MYOP |
| 4          | George       | ACNE DIAB100 | 
+------------+--------------+--------------+
Explanation: Bob and George both have a condition that starts with DIAB1.

 

문제 조건

1형 당뇨(Diabetes)를 앓고있는 환자의 모든 정보를 출력하시오

1형 당뇨는 DIAB1로 시작된다 

 

풀이 과정

REGEXP할 때는 공백도 꼭 표기해주기 (공백 때문에 wrong이 계속 뜸)

# REGEXP 
select * 
from patients 
where conditions REGEXP '^DIAB1|\s*DIAB1' --\s는 공백을 표현 

# LIKE 
select *
from patients 
where conditions like 'DIAB1%'
OR conditions like '% DIAB1%'