select-sql语句的逻辑问题。。。

问题描述

sql语句的逻辑问题。。。

语句出错了,如下:
$_sql = "SELECT COUNT(*) FROM cms_content c,cms_nav n WHERE c.nav=n.id AND c.nav IN (SELECT id FROM cms_nav WHERE pid='$this->nav') OR c.nav='$this->nav'";

模型就是
SELECT * FROM tablename WHERE 条件1 AND 条件2 OR 条件3;

现在逻辑关系应该是(1 and 2) or 3;

我想要 1 and (2 or 3),请问怎样才能实现呢? (我用括号或花括号框上2、3都不行。。)

解决方案

SELECT * FROM tablename WHERE 条件1 AND 条件2 OR 条件1 AND 条件3;
如果条件1 是必须的话 就是这样。

解决方案二:

试试 SELECT * FROM tablename WHERE (条件1 AND 条件2) OR ((条件1 AND 条件3);

解决方案三:

SELECT * FROM tablename WHERE (条件1 AND 条件2) OR (条件1 AND 条件3)

解决方案四:

SELECT * FROM tablename WHERE (条件1 AND 条件2) OR (条件1 AND 条件3)

解决方案五:

$_sql = "SELECT COUNT(*) FROM cms_content c,cms_nav n WHERE c.nav=n.id AND (c.nav IN (SELECT id FROM cms_nav WHERE pid='$this->nav') OR c.nav='$this->nav')";

解决方案六:

SELECT COUNT(* ) FROM cms_content c,cms_nav n
WHERE (c.nav=n.id AND c.nav IN (SELECT id FROM cms_nav WHERE pid='$this->nav') )
OR (c.nav=n.id AND c.nav='$this->nav')

解决方案七:

我觉得3楼说的挺有道理,顶一下

时间: 2025-01-07 08:08:01

select-sql语句的逻辑问题。。。的相关文章

sql语句的逻辑问题。。。

问题描述 sql语句的逻辑问题... SELECT * FROM tablename WHERE 条件1 AND 条件2 OR 条件1 AND 条件3 OR 条件1: 我想要WHERE后面的条件按顺序来判断,就是 [条件1 AND 条件2] 若不满足就判断 [条件1 AND 条件3] 再不满足就判断 [条件1]: 可是好像是短路效应似的,它会不按顺序来,若最后一个[条件1]满足了,就不会判断前面两个,相当于前面两个白写了...请问怎么才能让者三个[xx]按顺序判断呢? 解决方案 这个问题我验证了

转载《mysql 一》:mysql的select查询语句内在逻辑执行顺序

原文:http://www.jellythink.com/archives/924 我的抱怨 我一个搞应用开发的,非要会数据库,这不是专门的数据库开发人员干的事么?话说,小公司也没有数 据库开发人员这么个职位吧.好吧,对数据库最深的印象还停留在大学<数据库原理>这堂课上,什么第一范式,第二范式-,这些理论的东西,多多少少还是记得 点,至于更深层次的,我不会.所以呢,撸起袖子,开始学习吧. 干程序员,最不怕的就是学习,如果你连学习都怕了,那还是早点退出这行吧.你说是吧.而我今天这篇文章,既不总结

sql-求大神指导SQL语句怎么写

问题描述 求大神指导SQL语句怎么写 建立了一张活动表 actid int primary key identity(1,1), actname varchar(50) not null, actshort varchar(200) not null, actlong varchar(1000) not null, actaddress varchar(100) not null, actgoway varchar(200) not null, volshort varchar(100), vo

PHP 函数,文件,sql 语句优化方法

.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个url文件时候的php教程版本问题: <?php echo file_get_contents("test.txt"); ?> file_get_contents() 函数把整个文件读入一个字符串中. 和 file() 一样,不同的是 file_get

SQL语句如何实现 select 一对一匹配数据呢?

问题描述 在ACCESS中,SQL语句如何实现select一对一匹配数据呢?比如有下面两张表:b1表:t1表:我使用以下的SQL语句:SELECTb1.*,t1.*FROMt1INNERJOINb1ON(t1.单位名称=b1.单位名称)AND(t1.金额=b1.金额)会得到b1表里面的数据重复出现与t1匹配,如下图:图中彩色标注的数据都是重复出现的,我想让b1表里面的某一条数据只能和t1表里面的数据只匹配1次,这样的SQL语句该怎么写呢?求助各位大神帮助 解决方案 解决方案二:你这个innerj

把业务逻辑变成数据结构和SQL语句的例子。自然架构改成自然框架

      更正:和大家交流了一下,发现现在就叫做架构有一点大,还是叫做框架更准确一些,就叫做自然框架吧.     目前自然框架的内容包括三个部分:使用自定义控件快速实现增删改查和导出Excel.通用权限.个性化设置.       上一篇里 球球 同学询问"不太明白需求是怎么转化为数据库的.比如一个最简单的会员例子,累计1万消费以上是一级会员,5000消费以上是2级会员,买商品属于1级会员的8折,属于2级会员的9折,这个业务逻辑要怎么转化成数据库?"那我就以这个作为例子说一下吧.  

在ASP中使用SQL语句之1:SELECT 语句

select|语句|select 五花八门的SQL产品多得要命,或许你早顾不得其它甩开袖子就动手干了.但你要同时采用ASP和SQL的话就可能会头晕.MySQL.SQL Server和mSQL都是绝佳的SQL工具,可惜,在ASP的环境下你却用不着它们来创建实用的SQL语句.不过,你可以利用自己掌握的Access知识以及相应的Access技能,再加上我们的提示和技巧,相信一定能成功地在你的ASP网页中加入SQL. 在SQL的世界里,最最基础的操作就是SELECT 语句了.在数据库工具下直接采用SQL

LINQ to SQL语句(2)之Select/Distinct

[1] Select介绍1 [2] Select介绍2 [3] Select介绍3和 Distinct介绍 Select/Distinct操作符 适用场景:o(∩_∩) o- 查询呗. 说明:和SQL命令中的select作用相似但位置不同, 查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也就是结 果返回回来:延迟. Select/Distinct操作包括9种形式,分别为简单用 法.匿名类型形式.条件形式.指定类型形式.筛选形式.整形类型形式.嵌套 类型形式.本地方法调用形式

LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg

上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ to SQL.LINQ to Entities.LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所 有的数据都要在数据库运行着各种操作.所以先来学习LINQ to SQL,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常