三个表,表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。怎么样做啊?我的问题出在了哪里啊?
解决方案 »
- 如何使用Mysql一次性读取大量数据
- mysql 脚本执行效率请教
- mysql使用触发器时候提示old和new表不存在!那个大虾帮助下!拜谢了!
- MySQL数据库如何进行数据分析和数据挖掘
- mysql 如何把数字,字符串相互转换!谢谢!
- 关于创建数据库的问题?
- 多用户程序中为什么要每用户都开一个连接?只用一个不行吗?
- 分数大大的有,只要解决以下问题(mysql入门问题)
- mysql自定义函数查找树,如何设置查询深度?
- mysql数据库多表查询优化,求大神指点
- 用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类型。