在SQL / Laravel中使用“ LIKE”运算符比较两列

时间:2019-03-08 09:37:39

标签: sql laravel

我正在尝试比较表中的两列。我必须在其中检查电子邮件中是否包含他的手机号码。

TableName:- Table1
TableColumns:- id,email,MOB

例如。

SQL:

 'SELECT * FROM Tabel1 WHERE email LIKE %MOB%'

Laravel:

Tabel1::whereColumn('email', 'LIKE','%MOB%')->get();

我已经尝试了上述查询,但是显示语法错误。

3 个答案:

答案 0 :(得分:1)

让我们先从SQL的角度回答问题,引号中的任何内容都是SQL的文字,因此您需要使用列引用并添加通配符。您可以这样做:

SELECT * FROM Table1 WHERE email LIKE CONCAT('%', MOB, '%');

现在让我们来看一下Laravel,Laravel的第3个参数在哪里期望文字值,而不是另一列。您可以通过 whereRaw DB :: raw

克服此问题
Table1::whereRaw("email LIKE CONCAT('%', MOB, '%')");

Table1::where('email', 'LIKE', DB::raw("CONCAT('%', MOB, '%')"));

答案 1 :(得分:0)

您应该尝试这个

SELECT * FROM Tabel1 WHERE email LIKE '%' +MOB+'%'

答案 2 :(得分:0)

SELECT * FROM `table` WHERE `email` LIKE '%MOB%';