我有一个包含许多记录的MySQL表.我试图找到一种方法来显示满足查询的多个条件的记录.例如,如果我有这个表.
TABLE NAME: DATA
ID contactid flag flag_type
-----------------------------------
1 99 Volunteer 1
2 99 Uploaded 2
3 100 Via Import 3
4 100 Volunteer 1
5 100 Uploaded 2
Run Code Online (Sandbox Code Playgroud)
条件如:
WHERE (ID > 2) OR (flag = 'Uploaded') OR (flag_type = 1) ..etc..
Run Code Online (Sandbox Code Playgroud)
输出将仅返回ID 4和5.
您可以计算MySQL中的条件数并使用此值:
where ((id > 2) +
(flag = 'Uploaded') +
(flag_type = 1)
) > 1
Run Code Online (Sandbox Code Playgroud)
布尔值"true"被视为1AND"false"被视为0.因此,通过将值相加,您可以获得满足的条件数.
通常,你这样做是order by为了获得最匹配的第一个:
where id > 2 or flag = 'Uploaded' or flag_type = 1
order by ((id > 2) +
(flag = 'Uploaded') +
(flag_type = 1)
) desc;
Run Code Online (Sandbox Code Playgroud)