我有四列id
,to
,from
和name
在一个条件中,我想选择to = $to
和from = $from
的行。
在另一个条件下,我还想选择from = $to
和to = $from
的行。
如何在同一查询中选择两个条件。
答案 0 :(得分:1)
如果我理解你的问题,可以这样做:
SELECT * FROM tableName
WHERE (column-to = $to AND column-from = $from)
OR (column-to = $to AND column-from = $from);
答案 1 :(得分:1)
某些数据库支持in
多列:
where (`to`, `from`) in (($to, $from), ($from, $to))
这是特定于数据库的。反引号是特定于MySQL的。
旁注:使用SQL关键字和from
和to
等保留字时要小心。
这些需要特别注意,要求它们以与数据库兼容的方式进行转义(通常是反引号,方括号或双引号)。
答案 2 :(得分:0)
只需将AND
条件与括号分组,以便在评估期间为每组条件赋予优先权。
SELECT something FROM table
WHERE (to = $to AND from = $from) OR (from = $to AND to = $from);