列表顺序中的数据 - 只使用一次列表的任何方式?

时间:2013-04-04 04:21:49

标签: mysql mysqli

在显示用户条件结果的页面上,我只想显示一些数据列(为了提高速度),然后允许用户稍后根据需要添加其他列,我的代码将使用AJAX同时,符合条件的基础数据可能已经改变,可见表可能已经被jQuery使用,所以不再使用原始的WHERE子句,我认为它会更安全从可见表中收集ID并将它们传递给查询。考虑这样一个查询的例子:

SELECT t2.OtherField FROM t1 LEFT JOIN t2 ON t1.JoinID=t2.JoinID
WHERE t1.MyID in (1417,2120,217,590,6566,11764)
ORDER BY FIND_IN_SET(t1.MyID,'1417,2120,217,590,6566,11764')

现在想象一下,列表中的ID数量可能远远超过(如果用户没有考虑周全,数百甚至数千)。在WHEREFIND_IN_SET中重复相同的长列表似乎过多了。有没有办法在只使用一次ID列表时获得相同的结果?我尝试了这个,但它不起作用(前六个结果是较旧的记录,而不是列表中的六个):

SELECT t2.OtherField FROM t1 LEFT JOIN t2 ON t1.JoinID=t2.JoinID
ORDER BY FIND_IN_SET(t1.MyID,'1417,2120,217,590,6566,11764')
LIMIT 6

或者,由于重复列表,查询是否很大甚至不重要?或者,如果我认为这一切都错了,你有不同的想法,我很乐意听到它。

0 个答案:

没有答案