三个表,表host,表record,表comm
SQL语句如下:vSELECT `url_host` . * , (SELECT COUNT( * )
FROM `url_record`
WHERE `tn` = '10'
) AS `enter` , (SELECT COUNT( * )
FROM `url_record`
WHERE `tn` = '11'
) AS `hit` , (SELECT COUNT( * )
FROM `url_record`
WHERE `tn` = '21'
) AS `ding` , (SELECT COUNT( * )
FROM `url_comm`
) AS `comm`
FROM `url_host`
LEFT JOIN `url_comm` ON `url_host`.`id` = `url_comm`.`sid`
LEFT JOIN `url_record` ON `url_record`.`sid` = `url_host`.`id`
WHERE 1 =1
AND `url_host`.`hl` = ''
AND `url_host`.`ct` = ''
AND `url_host`.`tp` = ''
AND `url_host`.`fs` = ''
GROUP BY `url_host`.`id`
ORDER BY `enter` + `hit` + `ding` DESC
LIMIT 0 , 15
=============================================================================
当去掉那【where 1=1】背后一群and 之后就会有结果的,如果没有那一群and 就不会有结果的。怎么弄啊?
那一群and 有可能是没有设置,也有可能是设置了。所以用了这个where 1=1。怎么样做啊?我的问题出在了哪里啊?
SQL语句如下:vSELECT `url_host` . * , (SELECT COUNT( * )
FROM `url_record`
WHERE `tn` = '10'
) AS `enter` , (SELECT COUNT( * )
FROM `url_record`
WHERE `tn` = '11'
) AS `hit` , (SELECT COUNT( * )
FROM `url_record`
WHERE `tn` = '21'
) AS `ding` , (SELECT COUNT( * )
FROM `url_comm`
) AS `comm`
FROM `url_host`
LEFT JOIN `url_comm` ON `url_host`.`id` = `url_comm`.`sid`
LEFT JOIN `url_record` ON `url_record`.`sid` = `url_host`.`id`
WHERE 1 =1
AND `url_host`.`hl` = ''
AND `url_host`.`ct` = ''
AND `url_host`.`tp` = ''
AND `url_host`.`fs` = ''
GROUP BY `url_host`.`id`
ORDER BY `enter` + `hit` + `ding` DESC
LIMIT 0 , 15
=============================================================================
当去掉那【where 1=1】背后一群and 之后就会有结果的,如果没有那一群and 就不会有结果的。怎么弄啊?
那一群and 有可能是没有设置,也有可能是设置了。所以用了这个where 1=1。怎么样做啊?我的问题出在了哪里啊?
解决方案 »
- SQL分隔字符串问题,标题长,引起关注!~
- mysql insert语句 怎么存储一维数组变量
- 这样的价格表,应该如何建产品以及价格表,还需要建别的什么表?
- LINUX 安装MYSQL问题
- 急!!MYSQL存储过程问题
- 60万数据,Select语句加了个Order by...效率低了10倍?
- 求一个count语句
- 为什么说error 1193 unkonwn system variable
- MySql中为何不支持下面语句?
- *************我需要Motorola J2ME SDK(模拟器加开发包)一份,谁能给我,送PHP+MYSQL空间50M和论坛积分
- 用mysqldump备份mysql,,用mysql adminstrator恢复,,但是存储过程和触发器都恢复不了,是为什么
- 数据库新手请教这样的数据库如何设计
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
是:当去掉那【where 1=1】背后一群and 之后就会有结果的,如果有那一群and 就不会有结果的。 是有了那一群and 就不会出现结果的。
没有那一群and 就是正常显示的。
select * from url_host
where `hl` = ''
AND `ct` = ''
AND `tp` = ''
AND `fs` = ''
如果hl=''的时候要显示是【hl=任意】,所有的,那么怎么写啊?
建议你看一下有关SQL的基础知识。改成 hl like '%'
但是不过当我用hl='%'的时候却也是没有的。用hl LIKE '%'的时候才有结果。
hl 是varchar类型。