如何在MySQL中用AND替换IN?

时间:2015-04-23 17:36:50

标签: mysql

SELECT patient_id, patient_name
FROM patient
WHERE patient_id IN ('p37', 'p78', 'p87')

如何将IN分隔为多个AND语句?如果我把:

SELECT patient_id, patient_name
FROM patient
WHERE patient_id='p37' AND patient_id='p78' AND patient_id='p87'

它返回一个空结果。

我们知道可以使用IN代替多个AND语句,那么此查询出了什么问题?

5 个答案:

答案 0 :(得分:2)

IN基于OR,而不是AND,因此您需要:

SELECT patient_id, patient_name FROM patient WHERE patient_id='p37' OR patient_id='p78' OR patient_id='p87'

希望有所帮助

答案 1 :(得分:1)

当您分离出操作数时,IN关键字就像OR一样。尝试使用AND替换第二个查询中的OR

答案 2 :(得分:1)

您应该使用OR代替AND。 patient_id不能是' p37'和' p78'和' p87'一切都在同一时间。

SELECT patient_id, patient_name
FROM patient
WHERE patient_id='p37' OR patient_id='p78' OR patient_id='p87'

答案 3 :(得分:0)

没有更多信息很难说,但Patient_id真的可以同时做三件事吗?

也许你的意思是使用OR。

SELECT patient_id, patient_name
FROM patient
WHERE patient_id='p37' OR patient_id='p78' OR patient_id='p87'

答案 4 :(得分:0)

使用此:

SELECT patient_id, patient_name
  FROM patient
 WHERE patient_id='p37' OR patient_id='p78' OR patient_id='p87'