php – 单个查询中的两个FIND_IN_SET无效
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 单个查询中的两个FIND_IN_SET无效,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1102字,纯文字阅读大概需要2分钟。
内容图文
![php – 单个查询中的两个FIND_IN_SET无效](/upload/InfoBanner/zyjiaocheng/734/ef99d66135e641cdb7e5d26beb71613c.jpg)
下面是表格结构(邀请表): –
id user_id doc_name discussion_topic invited_friends accepted_invitation
1 1 IEP Form-1.docx first topic 2,3,4 NULL
现在:
当我查询时: –
SELECT * from invite WHERE (FIND_IN_SET(2,invited_friends) > 0)
我完美地记录了这个记录(如上所示).
但是当我这样做时:
SELECT * from invite WHERE (FIND_IN_SET(2,invited_friends) > 0) AND (FIND_IN_SET(2,accepted_invitation) =0)
我没有得到上述记录,也没有任何错误.
当我这样做时:
SELECT * from invite WHERE user_id <>1 AND (FIND_IN_SET(2,invited_friends) > 0) AND (FIND_IN_SET(2,accepted_invitation) =0)
我再次没有得到上述记录,也没有任何错误.
实际上,我必须检查给定id(示例2)不等于user_id并且必须在invite_friends中(从不为null)而不在accepted_invitation中(scenario_invitation将为null或分隔的id值).
我在最后两次查询中犯了什么错误?
注意:我在phpmyadmin中直接使用这些查询
解决方法:
使用IFNULL作为列名:
SELECT *
FROM invite
WHERE user_id <> 1 AND
(FIND_IN_SET(2, IFNULL(invited_friends, 0)) > 0) AND
(FIND_IN_SET(2, IFNULL(accepted_invitation, 0)) = 0);
检查SQL小提琴:http://sqlfiddle.com/#!9/98d95/9
内容总结
以上是互联网集市为您收集整理的php – 单个查询中的两个FIND_IN_SET无效全部内容,希望文章能够帮你解决php – 单个查询中的两个FIND_IN_SET无效所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。