zero_snake 发表于 2010-3-25 12:57:47

高手们。。关于mysql用codeigniter实现语句的写法

如题:
1. select prod_name from products;                  /*sql语句*/
        $this->db->select('prod_name');         /*c i   */
        $query=$this->db->get('products');

那这些怎么写??
select concat(vend_name,'(',vend_country,')') from vendors order by vend_name;

select prod_id,pro_name from peoducts where prod_name like'j%t';

select prod_id,pro_name from peoducts where prod_name like'_jt';

select prod_name from products where prod_name regexp '1000' order_by prod_name;

$this->db->query('select concat(vend_name,'(',vend_country,')') from vendors order by vend_name;');


帮个忙啦~~~~~~~~~~~

zycbob 发表于 2010-3-25 13:22:57

本帖最后由 zycbob 于 2010-3-25 14:27 编辑

http://codeigniter.org.cn/user_guide/database/active_record.html

$this->db->select() 可接受一个可选的第二个参数。如果你把它设为FALSE, CodeIgniter 将不会使用反引号保护你的字段或者表名 。这在进行复合查询时很有用。$this->db->select("concat(`vend_name`,'(',`vend_country`,')') as new_name", FALSE);

复杂的就用
$query = $this->db->query("要执行的 SQL");吧

zero_snake 发表于 2010-3-25 14:35:42

好,非常好,顺便问下
select cust_id from orders where order_num in(select order_num from orderitems where prod_id ='tnt2');
这个呢??
子查询不会也是这样的吧?

DasOmen 发表于 2010-3-25 14:54:53

$pro_id = 'tnt2'; // 參數進來
$sql = 'SELECT `cust_id` FROM `orders` WHERE `order_num` IN (SELECT `order_num` FROM `orderitems` WHERE `prod_id`= ?);'; //sql
$query = $this->db->query(sql,array($pro_id));

zero_snake 发表于 2010-3-25 15:42:17

我。。。。有看没懂。。。

DasOmen 发表于 2010-3-25 16:09:04

我寫的東西就是給2樓的一個補充而已,主要就是用 $this->db->query() 方法。
sql 語句反正你很熟練了,單獨組織成 $sql , 其中條件參數可以全部用?代替
query($sql,$param) 的第一個參數是需要執行的Sql語句,第二個是參數數組(根據?的數量和順序),ci 會幫你識辨參數類型的。

有問題請高手指正,我也是新人

zero_snake 发表于 2010-3-25 17:53:58

回复 6# DasOmen


    {:3_62:}   厉害。。我似乎是明白了
页: [1]
查看完整版本: 高手们。。关于mysql用codeigniter实现语句的写法