我们的Laravel Web应用程序为用户运行多个报告,其结果返回并显示在DataTables中。
目前,每个报告都有一个参数,只能取一个值。
因此,我们目前有一个名为"用户通过令牌"为此,您必须输入令牌名称以获取分配了该令牌的所有用户。查询显然是这样的:
SELECT USER from USERTOKEN WHERE TOKEN = '<parameter>'
这一切都非常好,但现在用户要求两个单独的要求。
首先,他们希望能够为令牌提供多个值,如:
SELECT USER FROM USERTOKEN WHERE TOKEN='AC10.1' OR TOKEN = 'PR10.1' OR TOKEN='HR11.1'
其次,他们希望能够拥有像#34;
这样的通配符SELECT USER FROM USERTOKEN WHERE TOKEN like 'AC10.%'
要结合这两件事,我们只需做一些事情:
SELECT USER FROM USERTOKEN WHERE TOKEN like 'AC10.%' OR TOKEN like 'PR10.1' OR TOKEN like 'HR11.1'
所以当用户输入&#34; *&#34;在他们的查询中,我们只是将其替换为&#39;%&#39;在查询等。如果我们没有&#39;%&#39;那么类似指令应该适用于完全匹配。在查询中,对吗?
我无法帮助它认为这可能是一种更好的方法。大型应用程序如何处理此问题? (我知道在返回行时使用通配符的危险。)