有一种方法可以做到这一点,尽管这取决于你想在哪里做。例如,您希望MySQL进行分隔,还是希望将其推送到服务器端脚本以分隔/分散数据?
我个人认为这是一种可能,用不同的查询查询数据库一两次,以使数据多样化。例如“select*from classes where couse like e”,然后可能会得到第一个结果,例如“econ…”,在下一个查询中,可能会执行“select*from classes where!”(课程如“Econ”)“
如果您希望服务器端脚本多样化,则需要查询更大的数据集而不是10。让我们说50。从中可以返回结果集的0、1、2、3、4、20、30、40、49、50。这可能不是最智能的方法,它还要求您从数据库中提取更大的数据集。
原始选择:
SELECT Class_ID, Department_Code, Course_Code, Class_Code, FROM Classes WHERE REPLACE(REPLACE(REPLACE(CONCAT(Department_Code, Course_Code, Class_Code), '-', ''), '(', ''), ')', '') LIKE '%". $q ."%' LIMIT 10
多样化的查询:(我将用上面的原始内容替换,以缩短查询时间)
UNION SELECT * FROM Classes WHERE SUBSTRING(,1,1) LIKE '%".$q."%'
这可能不完全正确,但基本的想法是您希望原始的结果集(联合体的左侧)和第二个查询(我在其中获取结果并对其调用子字符串)在一起,因此在您的示例中,“e”可能类似于用户查询。希望这能让你做出一个混合的组合,我觉得这不太正确,但它应该让你知道你能做什么。