您好,欢迎来到九壹网。
搜索
您的当前位置:首页ThinkPHP条件是一个表里面的两个字段比较

ThinkPHP条件是一个表里面的两个字段比较

来源:九壹网
ThinkPHP条件是⼀个表⾥⾯的两个字段⽐较

ThinkPHP 条件是⼀个表⾥⾯的两个字段⽐较

今天群⾥有⼈问,thinkphp框架,条件是⼀个表⾥的两个字段,怎么查询。然后就做了下测试:

⽐如查询出 ⼿机号就是 的⽤户:(1)⾸先,正常的sql语句应该是这样的:

SELECT `id`,`name`,`tel`,`weixin` FROM `user` WHERE `tel` = `weixin`

然后在thinkphp框架中测试:

(2)当where条件是字符串时,肯定是可以的:

M('user')->where('`tel`=`weixin`')->field('id,name,tel,weixin')->select();

字段不加反引号【`】也是可以的:

M('user')->where('tel=weixin')->field('id,name,tel,weixin')->select();

(3)当where条件使⽤数组时,测试不可以,字段会被当做字符串,⽐较时转化为了0:

M('user')->where(['tel'=>\"`weixin`\"])->field('id,name,tel,weixin')->select();

打印出sql是:SELECT `id`,`name`,`tel`,`weixin` FROM `user` WHERE `tel` = 0。

M('user')->where(['tel'=>'`weixin`'])->field('id,name,tel,weixin')->select();

打印出sql是:SELECT `id`,`name`,`tel`,`weixin` FROM `user` WHERE `tel` = 0。

M('user')->where(['tel'=>`weixin`])->field('id,name,tel,weixin')->select();

打印出sql是:SELECT `id`,`name`,`tel`,`weixin` FROM `user` WHERE `tel` = null 。 结论:

使⽤单引号、双引号时,都会被当做字符串,⽐较时当做0来查询,不⽤引号时,当做null来查询,

所以可以使⽤字符串的查询⽅式,数组没有查到好的解决办法,欢迎⼤家指导!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务