0

フィードといいねテーブルがあります。最初にフィード テーブルからデータをクエリし、フェッチされたフィードのいいねテーブルのいいねを取得しようとします。

フィード テーブル:

`feed_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`feed_postid` INT(15) UNSIGNED NOT NULL,
`feed_type` VARCHAR(40) NOT NULL,
`feed_userid` INT(12) UNSIGNED NOT NULL,
`feed_privacy` TINYINT(1) UNSIGNED NOT NULL,
`feed_uids` TEXT NULL,
`feed_title` VARCHAR(180) NULL DEFAULT NULL,
`feed_content` TEXT NOT NULL,
`feed_dateline` DATETIME NOT NULL,

好きなテーブル:

like_id
like_userid
like_type
like_postid

今、私はそのようなテーブルが好きなクエリフォームが欲しい

IN((1, 'status'),(2,'image'),(3, 'status'))
// IN((like_postid,like_type),(like_postid,like_type),(like_postid,like_type))

クエリの例:

SELECT * FROM likes WHERE like_postid = 1 AND like_type = 'status' OR like_postid = 2 AND like_type = 'image' OR like_postid = 5 AND like_type = 'status';

今、IN関数でトップクエリを書き直したい

SELECT * FROM likes WHERE like_postid, like_type IN((1,'status'), (2,'image'), (5, 'status')); --but this is not work, there is any way to do this?
4

2 に答える 2

3

あなたはこれを試すことができます、

SELECT * FROM likes WHERE (like_postid, like_type) IN ((1,'status'),(2,'image'),(5,'status'));
于 2013-01-11T06:13:41.533 に答える
1

これは上位 N 分析を実行するクエリの 1 つです。確認してください

SELECT * FROM likes WHERE like_type in ('status','image') like_postid によるオーダー limit 2 union all SELECT * FROM likes WHERE like_type in ('status','image') order by like_postid offset 4 limit 1

于 2013-01-11T06:36:19.740 に答える