嵌套连接查询

Nested conjunctive query

我为一个查询创建了下面的代码,该查询应该 return 满足两个条件的记录:

1- ID 等于#7

2-疾病等于写在单引号之间的一种疾病

我正在应用此查询的数据库中 ID = 7 的记录没有在查询中作为属性 "disease" 的值列出的任何疾病,因此查询应该' t return 任何记录作为结果。然而,查询的结果是 return 使用 ID = 7 的元组。你能告诉我我的代码有什么问题吗?我尝试用单词 (OR) 替换 (||),但我仍然得到相同的结果。

SELECT *
FROM patients
WHERE disease = ( 'migraine' || 'stroke' || 'concussion' || 'down_syndrome' || 'epilepsy' || 'autism' || 'hydrocephalus' || 'dyslexia' || 'dystonia' || 'aphasia' || 'coma' || 'aneurysm' || 'batten_disease' || 'brain_cancer' || 'alzheimers_disease' || 'amyolrophic_alteral_sclerosis' )
AND ID = '7'

您打算使用 IN 运算符,例如

SELECT *
FROM patients
WHERE disease IN ( 'migraine', 'stroke' , 'concussion' , 'down_syndrome' , 'epilepsy' , 'autism' , 'hydrocephalus' , 'dyslexia' ,'dystonia' , 'aphasia' , 'coma' ,'aneurysm' , 'batten_disease' , 'brain_cancer' , 'alzheimers_disease' , 'amyolrophic_alteral_sclerosis' )
AND ID = '7';

编辑: 每条评论:|| 是一个连接运算符,而不是 OR 条件,因此最终您会得到一个包含所有疾病和您要比较的那个。