我正在尝试比较表中的两列。我必须在其中检查电子邮件中是否包含他的手机号码。
TableName:- Table1
TableColumns:- id,email,MOB
例如。
SQL:
'SELECT * FROM Tabel1 WHERE email LIKE %MOB%'
Laravel:
Tabel1::whereColumn('email', 'LIKE','%MOB%')->get();
我已经尝试了上述查询,但是显示语法错误。
答案 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%';