实际上这个题考的是模糊查询或者是正则匹配
模糊查询版本
select * from Patients where conditions like'% DIAB1%' or conditions like'DIAB1%'
复习一下MySQL模糊查询用法
select name from user where name REGEXP ‘.000’;
.在正则表达式中表示匹配任意一个字符。
进行OR匹配:
select name from user where name REGEXP ‘1000|2000’;
检索name中包含文本1000或2000的所有行。
匹配几个字符之一:
select name from user where name REGEXP ‘[123] Ton’;
[123]定义一组字符,它的意思是匹配1或2或3。
select name from user where name REGEXP ‘[1-3] Ton’;
-用来定义一个范围。
匹配特殊字符:
匹配特殊字符,必须用\为前导,-表示查找-,.表示查找.
匹配多个实例:
*: 0个或多个匹配;
+:1个或多个匹配(等于{1,});
?:0个或1个匹配(等于{0,1});
{n}:指定数目的匹配;
{n,}:不少于指定数目的匹配;
{n,m}:匹配数目的范围(m不超过255)。
定位符:
^:文本的开始;
$:文本的结尾;
[[:<:]]:词的开始;
[[:>:]]:词的结尾;
在集合中:用来否定该集合,例如[0-9],表示不匹配数字
正则解法,对两种情况进行or,匹配任意一种,第一种是DIAB1结尾,第二种是以空格开头DIAB1
select
patient_id,
patient_name,
conditions
from Patients
where conditions regexp '^DIAB1| DIAB1'
order by patient_id asc