草庐IT

Grib2Record

全部标签

php - 是否可以使用 Codeigniter Active Record 更新 JOINed 表?

这是我想做的functionedit_save($data,$post_id,$user_id){$this->db->where('post.user_id',$user_id);$this->db->where('post.post_id',$post_id);$this->db->join('data','post.data_id_fk=data.data_id','left');$this->db->update('post',$data);}“post”表需要与“data”左连接。当我运行上面的命令时,我收到一条SQL错误,指出未找到“数据”表中的字段之一。有什么建议吗?更多

php - Codeigniter 2.2 - 使用左连接和多个 where 子句更新 Active Record

我有以下SQL:UPDATEmsh_leadsmlLEFTJOINmsh_leads_disposition_logdlONml.id=dl.lead_idSETml.assigned_to=nullWHERE((dl.disposition_id!=6ANDdl.disposition_id!=3)OR(dl.disposition_idISNULL))AND(ml.assigned_to=?ANDml.decline=0ANDml.subcategory_id=?)创建这个有一些逻辑(根据某些情况,有些地方来去去去)所以我希望在Codeigniter(2.2)ActiveRecor

php - yii2 中使用 Active Record 的复杂数据库查询

长话短说我有一个在RAWSQL中运行的查询,但我使用查询生成器或事件记录重新创建它时收效甚微。我正在开发基于yii2高级应用程序模板的Web应用程序。我已经编写了一个数据库查询并使用返回正确记录的findbysql()实现了它,但是在将其转换为事件记录时遇到了问题。我最初想允许用户通过搜索表单(用户和日期)修改(过滤)结果,但后来我意识到在具有事件记录的gridview上实现过滤器会更顺畅。我已经得到了可以工作的简单查询,但是我不确定如何实现具有这么多连接的查询。许多示例使用了子查询,但我的尝试根本没有返回任何记录。我想在我尝试过滤器之前我需要先转录这个查询。videoControll

php - Codeigniter Active Record HAVING/WHERE db.field = db.field

谁能告诉我,这是否可以通过事件记录来实现?如何实现?$this->db->select('*');$this->db->from('table1');$this->db->join('table2','table1.id=table2.fi_id','left');$this->db->having('table1.second_id','table2.fi_second_id',false);$query=$this->db->get();问题在于,'table2.fi_second_id'始终被视为字符串-而不是数据库字段。也用'where'试过这个-这是同样的问题。谢谢

php - 在具有多个 where 子句的 Active Record 中使用 find()

我想在ActiveRecord查询之后将(使用括号)分成3组。第一组将从第一个“Where”子句到最后一个“orWhere”。第二个和第三个将使用“andWhere”。请给我一些建议,告诉我如何使用方括号来分隔所有3个部分。$query=Book::find()->where('book_nameLIKE:book_name',array(':book_name'=>'%'.$book_name.'%'))->orWhere('book_categoryLIKE:book_category',array(':book_category'=>'%'.$category.'%'))->or

php - Codeigniter Active Record - 计算总发现行数 (MySQL)

我在应用了限制的Codeigniter模型中使用复杂的SQL查询。我想计算在未应用限制和偏移量的情况下会找到的总行数。我想将计数连同结果数组一起返回到我的Controller-我该怎么做?如果这是正确的解决方案,我应该把SQL_CALC_FOUND_ROWS放在哪里?这是查询(最初不是我自己构建的):$this->db->select('table1.*,table2.*,table3.*,table4.*,table5.*,table6.*,table7.*,table8.*,table9.*,(SELECTGROUP_CONCAT(field1)FROMtable10WHEREta

php - Yii2 更新与 Active Record 多对多关系的联结表

我有3个表,例如数据库中的一个article表,一个tag表,一个article_tag表。文章和标签是N-M关系。当我需要添加新文章时,使用Yii2的事件记录的link()方法将关系保存到联结表,它工作正常。但是当我需要更新联结表时。如果我再次调用文章的link()方法。不起作用。下面是我的代码和错误信息。$tag_ids=Yii::$app->request->post('Article')['tags'];foreach($tag_idsas$value){$tag=Tag::findOne($value);$model->link('tags',$tag);}SQLSTATE[

Mysql:2个ID的主键内部连接给出 "Range checked for each record"

在对具有2个值的PRIMARY键(使用IN或OR构造)执行INNERJOIN时,在EXPLAINSELECT中得到“检查每条记录的范围(索引映射:0x1)”这里是查询:SELECT*FROMmessageASmINNERJOINuserASuONu.id=m.sender_idORu.id=m.receiver_id在做解释时,它给了我:+----+-------------+-------+------+---------------+------+---------+------+-------+-------------------------------------------

php - 使用 Active Record 在 Yii 中调用数据库 View

我了解如何使用Yii的事件记录环境查询表。我找不到调用mysqlView的文档。另外,我知道如何使用gii工具在事件记录中对表进行建模,但是有没有办法为数据库View执行此操作? 最佳答案 我没有相同的经历,此评论适用于遇到麻烦的人。使用带有一些连接和计算的mysqlView我得到以下错误..app\\models\\db\\WarComplete必须有一个主键。我通过添加...解决了这个问题publicstaticfunctionprimaryKey(){return['id'];}...覆盖我的模型。

mysql - ruby rails : Find the record with lowest value of a specific column

我正在尝试在数据库中查找其日期时间列的值最低的记录。简单来说,我想找到时间最早的记录。我可以使用minimum来找到最小值,但这只会返回值本身,而不是整个记录。我想我可以创建另一个查询,但我想知道是否有更有效的方法来执行此操作。 最佳答案 这会起作用:earliest=Model.first(:order=>'columnasc')—Model是模型类的名称,column是日期时间列的名称。它将生成此SQL语句:SELECT*FROM`Model`ORDERBYcolumnascLIMIT1