「Q()」を使用した非常に長いクエリがありSqlite3
、非常にうまく機能しますが、postgresql
たとえばmysql
、postgresql:invalid input syntax for integer: "("
および mySQL: で奇妙なエラーが発生します。Truncated incorrect DOUBLE value: '('
そのクエリをmysqlで実行するにはどうすればよいですか? 私の間違いはどこですか?
そのクエリは次のとおりです。
watchersTuple = self.getWatchers()
tagsTuple = self.getTags()
blockedUserTuple = self.getBlockedUser()
blockedTagTuple = self.getBlockedTag()
statuses = Status.objects.filter( (Q(author__in = str(watchersTuple)) | Q(tags__in = str(tagsTuple)) | Q(author = self) | Q(recipient = self)) & ~Q(author__in = str(blockedUserTuple)) & ~Q(tags__in = str(blockedTagTuple)) ).distinct()