0

在显示用户条件结果的页面上,我只想显示一些数据列(为了速度),然后允许用户稍后根据需要添加其他列,我的代码将使用 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

或者即使由于重复列表而导致查询很大也没有关系?或者,如果我对这一切都错了,而你有不同的想法,我很想听听。

4

0 回答 0