将通配符包含在Laravel / LAMP应用程序搜索功能中的最佳方法是什么?

时间:2015-06-29 17:55:14

标签: php mysql laravel wildcard lamp

我们的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;那么类似指令应该适用于完全匹配。在查询中,对吗?

我无法帮助它认为这可能是一种更好的方法。大型应用程序如何处理此问题? (我知道在返回行时使用通配符的危险。)

0 个答案:

没有答案