MYSQL / Laravel LIKE表现异常

时间:2018-10-03 13:06:37

标签: php mysql laravel-5

我有一堆数学任务,我想通过一个文本框进行过滤。

例如: 4 * 1应该返回4 * 1、4 * 10、4 * 11,... 4 * 11应该返回4 * 11

为此,我编写了这段代码:

$operator = DB::connection()->getPdo()->quote("{$operator}");
$operand2 = DB::connection()->getPdo()->quote("{$operand2}%");
DB::table('tasks')
        ->select(DB::raw('*'))
        ->whereRaw("operand1 = {$operand1} AND operator = {$operator} AND CAST(operand2 AS CHAR(50)) LIKE {$operand2}")
        ->get();

结果非常出乎意料,而且无法预测。
当我输入4 * 5时,我得到4 * {任何操作数}
当我输入4 * 12时,我得到4 * 1、4 * 10、4 * 11、4 * 12

更新/解决方案
事实证明,它与MySQL或Laravel没有任何关系。这是JS中的错误。我使用了keypress事件而不是keyup。这样总是丢失最后输入的数字。

0 个答案:

没有答案