即时通讯使用的是mysql,想知道它的语法。
我想使一个IN子句是这样的:
from_id OR to_id IN ( )
除了我不知道语法是
我想避免像这样两次运行in子句:
from_id IN ( ) OR to_id IN ( )
最好的问候亚历山大
如果您出于某种原因担心IN子句被运行两次(例如,如果子查询特别复杂并且优化器似乎没有利用缓存结果集的优势),则可以始终将IN子句替换为内部联接。
所以这:
FROM x WHERE from_id IN ( _subquery_ ) OR to_id IN ( _subquery_ )
变成这个:
FROM x INNER JOIN ( _subquery_ ) y ON y.value IN (x.from_id, x.to_id)