[英]Compare two columns with 'LIKE' Operator in SQL / Laravel
我正在尝试比较表中的两列。 我必须在其中检查电子邮件中是否包含他的手机号码。
TableName:- Table1
TableColumns:- id,email,MOB
防爆。
SQL:
'SELECT * FROM Tabel1 WHERE email LIKE %MOB%'
Laravel:
Tabel1::whereColumn('email', 'LIKE','%MOB%')->get();
我已经尝试过以上查询,但是它显示语法错误。
让我们从回答您的SQL问题开始,引号中的任何内容都是SQL的文字,因此您需要使用列引用并添加通配符。 您可以这样做:
SELECT * FROM Table1 WHERE email LIKE CONCAT('%', MOB, '%');
现在让我们看一下Laravel,第3个参数是where期望文字值的地方,而不是另一列。 您可以通过whereRaw或DB :: raw克服此问题:
Table1::whereRaw("email LIKE CONCAT('%', MOB, '%')");
要么
Table1::where('email', 'LIKE', DB::raw("CONCAT('%', MOB, '%')"));
你应该试试这个
SELECT * FROM Tabel1 WHERE email LIKE '%' +MOB+'%'
SELECT * FROM `table` WHERE `email` LIKE '%MOB%';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.