草庐IT

php - 如何将此查询转换为 yii 查询?

这个问题在这里已经有了答案:howtoconvertthisqueryinyiiframeworkmodel(2个答案)关闭9年前。我希望将此Sql命令转换为yiicactivedataprovider格式,以便我可以向数据提供程序提供此条件。SELECT*FROM(SELECT(CASEWHENproduct_nameLIKE'%nokia%'THEN1ELSE0END+CASEWHENproduct_nameLIKE'%lumia%'THEN1ELSE0END+CASEWHENproduct_nameLIKE'%800%'THEN1ELSE0END)ASnumMatches,pro

mysql - yii 中的 CDbcriteria.?

如何使用CDBcriteria编写以下查询,我正在尝试使用cdbcriteria在GridView中显示我的数据。是否有任何其他方法可以在不使用CDBcriteria的情况下在cgridview中显示数据。SELECT*FROM`user`WHERErole='employer'Ihavetriedlikebelow:$criteria=newCDbCriteria;$criteria->condition='role=employer';returnnewCActiveDataProvider('manageemployers',array('criteria'=>$criteria

php - 如何在 yii 中设置命令超时?

我正在努力寻找在Yii中为MySql数据库设置命令超时的位置(一些查询需要一段时间才能运行)。在源代码中,文件protected/config/main.php具有以下设置:'db'=>array('connectionString'=>'mysql:host=xxx;dbname=xxx;port=xxx;timeout=100;','emulatePrepare'=>true,'username'=>'xxx','password'=>'xxx','charset'=>'utf8','schemaCachingDuration'=>3600,),超时似乎适用于连接,命令超时默认为3

php - 如何在 yii2 ActiveRecord 中使用查询缓存

我引用的是指南:``查询缓存是一种建立在数据缓存之上的特殊缓存功能。用于缓存数据库查询结果。查询缓存需要数据库连接和有效的缓存应用程序组件。查询缓存的基本用法如下,假设$db是一个yii\db\Connection实例:$result=$db->cache(function($db){//theresultoftheSQLquerywillbeservedfromthecache//ifquerycachingisenabledandthequeryresultisfoundinthecachereturn$db->createCommand('SELECT*FROMcustomerW

php - 从 yii 2 中的其他表按计数(*)排序

我有2个表:视频和喜欢video表有字段:id,title..喜欢表有字段:id、video_id、user_id我想获得最喜欢的10个视频。我可以通过命令在sql中完成:SELECTvideos.*,COUNT(likes.video_id)AScountlikeFROMvideosLEFTJOINlikesONvideos.id=likes.video_idGROUPBYvideos.idORDERBYcountlikeDESCLimit10我如何使用yii2在ActiveRecord中实现它如有任何帮助,我将不胜感激。提前致谢! 最佳答案

mysql - 按自定义值排序 Yii2

我想在自定义字段上对记录进行排序,但它在yii2中给我错误,任何人都可以帮助我。->orderBy(player.PlayerRole,'G','D','M','F');其中G、D、M和F是自定义值。这在mysql中工作正常,但在yii2中却不行。这个我也试过$expression=newExpression('field(player.PlayerRole,G,D,M,F)');->orderBy($expression)这里是完整的查询$expression=newExpression('field(player.PlayerRole,G,D,M,F)');return(newQu

php - Yii2 在 sql 中插入日期和时间

我正在创建一个yii应用程序,我想将数据插入数据库,但问题是如何插入日期和时间。在我从数据库中删除日期时间列之前,它无法插入所有详细信息。这是Controller类:['class'=>AccessControl::className(),'rules'=>[['actions'=>['index','confirm','resend','logout'],'allow'=>true,'roles'=>['?','@'],],['actions'=>['account','profile','contact','resend-change','cancel','advertiser_d

mysql - Yii2 查询未正确引用

我一次又一次地遇到这个问题。如果能找出如何正确构建查询,这样我就可以停止使用Yii::$app->db->createCommand()作为解决方法,那就太好了。我的Yii2查询:$users=UserSpatial::find()->select('user_id,harvesine(y(coordinates),x(coordinates),:lat,:lon)asdist,astext(coordinates)')->where('st_within(coordinates,envelope(linestring(point(:rlon1,:rlat1),point(:rlon2

php - Yii2 : Add ON UPDATE CURRENT_TIMESTAMP attribute

我正在扩展yii\db\Migration类以添加一个方法timestamps这将加快我创建迁移的速度。它将在我将创建的每个迁移中添加我需要的所有时间戳。我在Laravel和CakePHP框架中看到过这个功能,我很好奇为什么Yii2迁移工具默认不提供这个功能。我尝试了以下方法:namespacecustom\db;use\yii\db\MigrationasYiiMigration;classMigrationextendsYiiMigration{publicfunctiontimestamps($tableName){$this->addColumn($tableName,'cre

php - Yii2 事件记录中按查询等效的 MySQL 复杂顺序

我需要按status字段对表格数据进行排序,但我也想先显示一些具有特定status的行。目前我可以像这样使用MySQL实现这一点:SELECTstatusFROMitemORDERBYstatusNOTLIKE'%order-status%',status因此所有具有order-status的项目将首先显示订单状态,然后其他项目按状态排序。但我无法在Yii2ActiveRecord中实现这一点。我试着写这样的东西:$query->orderBy(['notlike','item.status','order-status']);$query->orderBy(['item.status