我有以下复杂的 SQL 语句,它使用“IN”来搜索多个类别。
SELECT MATCH(placename,fullloc) AGAINST ('' IN BOOLEAN MODE) as score, places.PlaceName, places.fullloc, places.PlaceID, places.ImageThumb, places.contributorid, places.verified, places.verified_by, places.verified_date, places.visibility
FROM places
INNER JOIN places_cats ON places.PlaceID = places_cats.PlaceID
WHERE STATUS IN (1,0)
AND places_cats.CATID in (129,75,104)
AND (visibility = 1 OR (visibility in (2,3)
AND places.contributorid = '999999999'))
GROUP BY PlaceID
ORDER BY score DESC
我希望能够将它从一个“IN”切换,这基本上使它成为一个多重“OR”语句,它会给我一个多重“AND”语句。是否有一个简单的 SQL 命令可以让我这样做,还是我必须实际创建一个多重“AND”语句?
CATID 列表可能会变得很长。事实上,有时猫列表是 35 项。