在同一列上使用WHERE子句两次


Using WHERE clause twice on same column?

我试图从同一专栏中选择两个,我读到了一些以前发布的问题,还有一些人建议使用T1.T2.,但我不确定如何在这个例子中实现这些。所以我要做的是从statement_type列中选择两次。其中值为WTHDTIP

SELECT * FROM `usr_statements` 
WHERE `username` = '$username' AND `statement_type` = 'WTHD' AND `statement_type` = 'TIP' 
ORDER BY `statement_ref`";

我尝试从中排序两次的列是statement_type

WHERE `username` = '$username' AND `statement_type` = 'WTHD' AND statement_type` = 'TIP'

您可以使用OR:

WHERE `username` = '$username' AND (`statement_type` = 'WTHD' OR `statement_type` = 'TIP')

或使用IN

WHERE `username` = '$username' AND `statement_type` IN('WTHD', 'TIP')

如果要使用不同的条件对同一列进行排序,请使用OR

SELECT * FROM `usr_statements` 
WHERE `username` = '$username' AND (`statement_type` = 'WTHD' OR `statement_type` = 'TIP') 
ORDER BY `statement_ref`";

如果你有超过3条语句,那么使用IN来降低复杂性,

SELECT * FROM `usr_statements` 
WHERE `username` = '$username' AND `statement_type` IN('WTHD', 'TIP') 
ORDER BY `statement_ref`";