用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1678|回复: 8
收起左侧

[讨论/交流] 怎么能这个语句在ci里运行,ci运行不能

[复制链接]
发表于 2014-5-12 15:41:30 | 显示全部楼层 |阅读模式
$query = $this->db->query("set @n=0;set @f=0; select * from (select title,@n:=if(@f=pid,@n:=@n+1,1) as id,@f:=pid as pid from product where pid in(257,209) order by pid,addtime desc) a where id <8");
发表于 2014-5-19 13:51:17 | 显示全部楼层
你真是外星来了.外星文字都这么高端
发表于 2014-5-19 16:03:46 | 显示全部楼层
$query = $this->db->query("
set @n=0;
set @f=0;
select * from
(select title,@n:=if(@f=pid,@n:=@n+1,1) as id,@f:=pid as pid from product where pid in(257,209) order by pid,addtime desc)
a
where id <8
");
查询的语法是,select * from 表名,你这个from 后面跟这么长的是要作为where 条件用吗?个人感觉的的括号内的东西,没有使用,然后还放错了位置。
 楼主| 发表于 2014-5-21 17:48:17 | 显示全部楼层
这个语句在sql里面已经运行是正确的
 楼主| 发表于 2014-5-21 17:50:12 | 显示全部楼层
goyuquan 发表于 2014-5-19 13:51
你真是外星来了.外星文字都这么高端

这只能说明你孤陋寡闻
 楼主| 发表于 2014-5-21 17:53:29 | 显示全部楼层
幸福糖 发表于 2014-5-19 16:03
$query = $this->db->query("
set @n=0;
set @f=0;

这个语句只是想实现在一个表单里面可以取自己想要的多个产品类别,然后按自己的时间排序取最后的8个产品,我不想在程序里面写,那样很麻烦
发表于 2014-5-22 18:24:12 | 显示全部楼层
外星人 发表于 2014-5-21 17:53
这个语句只是想实现在一个表单里面可以取自己想要的多个产品类别,然后按自己的时间排序取最后的8个产品 ...

额,之前的确没有这样用过,你是把查询的结果当做了一个表了,没理解过来{:soso_e127:}。你这个有多个语句了,不知道你那个query方法里面是怎么执行的,总之mysql_query()执行的话 应该是不行的,这个方法不支持执行多句,或许你也早已明白了。你可以分开执行,也可以使用PDO来解决。
发表于 2014-5-22 22:15:33 | 显示全部楼层
这个是什么
 楼主| 发表于 2014-5-24 16:36:21 | 显示全部楼层
幸福糖 发表于 2014-5-22 18:24
额,之前的确没有这样用过,你是把查询的结果当做了一个表了,没理解过来。你这个有多个语 ...

还要配置PDO,已经弃用这个语句了,这个只能支持MYSQL,只能多写些语句了

本版积分规则