在MySQL结果中包含重复结果

时间:2014-09-04 13:54:49

标签: php mysql mysqli

我对此表单有疑问:

$query = "SELECT `id`, `value` FROM `table` 
WHERE `id` IN "."('".$mod."') ORDER BY FIELD (`id`,'".$mod."')";

$ mod是一个值数组,可以转换为如下字符串:

$mod = implode("','", $mod);

$ mod中的值是简单的非负整数但它们有时会重复...我需要查询返回一个结果,其中包含所有行,包括重复顺序,即

当$ mod包含以下一组id {39,21,34,14,35,21}时,查询应该返回这些行:

$result    id       value
row1       35       "value35"
row2       21       "value21"
row3       34       "value34"
row4       14       "value14"
row5       35       "value35"
row6       21       "value21"

1 个答案:

答案 0 :(得分:2)

您需要一个包含您的身份证的临时表。使用递增主键作为订单。

CREATE TEMPORARY TABLE setofids ( setorder int auto_increment primary key, id int);
INSERT INTO setofids (id) VALUES (35),(21),(34),(14),(35),(21);

然后加入你的桌子:

SELECT table.id, table.value FROM table
JOIN setofids USING (id)
ORDER BY setofids.setorder