草庐IT

update_by_query

全部标签

mysql - 避免使用 INNER JOIN + ORDER BY 进行文件排序

我一直在阅读其他帖子,但未能解决我的问题。使用DESC命令查询速度慢了x20倍,我必须改进它。这是查询:SELECTposts.post_id,posts.post_b_id,posts.post_title,posts.post_cont,posts.thumb,posts.post_user,boards.board_title_l,boards.board_titleFROMpostsINNERJOINfollowONposts.post_b_id=follow.board_idINNERJOINboardsONposts.post_b_id=boards.board_idWHE

php - ON DUPLICATE UPDATE 不适用于某些行

我在查询中使用了ONDUPLICATEUPDATE,一些结果没有存储它。我尝试了所有可能的方法,但那些仍然保持不变。这是数据库图片。那些NULL,就是没有存储成功的行;结果应该是1而不是NULL。if($remark){$query3="INSERTINTO`audit_section_remarkrecord`SETremark='$remark',form_details_subquestion_id='$form_details_subquestion_id',form_details_section_id='$form_details_section_id',audit_sec

mysql - InnoDB : Bulk insert using transaction OR combine multiple queries?

在InnoDB中执行批量INSERT时,我应该使用事务吗STARTTRANSACTION;INSERTINTOtbl_name(a,b,c)VALUES(1,2,3);INSERTINTOtbl_name(a,b,c)VALUES(4,5,6);INSERTINTOtbl_name(a,b,c)VALUES(7,8,9);COMMITTRANSACTION;或者合并多个查询?INSERTINTOtbl_name(a,b,c)VALUES(1,2,3),(4,5,6),(7,8,9);如果重要的话,我正在使用PHP和MySQL数据库在同一台机器上。 最佳答案

mysql - 使用一个 SQL 查询进行 SELECT、UPDATE、DELETE?

我有一个递减值的小语句:UPDATEcart_itemsSETquantity=quantity-1WHEREcart_id={$cart_id}ANDid={$cart_item_id}但是如果该值在递减后变为0,SQL是否有可能删除该行?如果是这样,那么我想重新计算与该购物车匹配的行数:SELECTFROMcart_itemsWHEREcart_id={$cart_id}如果行数为零,我想从另一个表中删除该记录,如下所示:DELETEFROMcartWHEREid={$cart_id}目前似乎需要多个查询来执行此操作,但是否可以在单个SQL语句中完成所有操作?

使用 UNION/UNION ALL 和 Group By 的 MySQL 查询错误

生成如下两个结果集:1).查询OCCUPATIONS中所有姓名的按字母顺序排列的列表,紧随其后的是每个职业的第一个字母作为括号(即:括在括号中)。例如:AnActorName(A)、ADoctorName(D)、AProfessorName(P)和ASingerName(S)。2).查询OCCUPATIONS中每个职业出现的次数。将出现的次数升序排列,并按以下格式输出:共有[occupation_count][occupation]个。表名:职业总列数:两个='姓名'和'职业',演示表如下所示:示例输出:Ashely(P)Christeen(P)Jane(A)Jenny(D)Julia

php - 交响乐 2.5 : sql query with Where IN Clause using an array as a parameter

我正在尝试运行sql查询。我正在尝试选择具有特定角色的用户。在我的查询下方:$roleUser=$this->container->getParameter('user_role');$query=$this->getDoctrine()->getEntityManager()->createQuery('SELECTuFROMUserBundle:UserurWHEREur.roleIN:role_user')->setParameters('role_user',$roleUser);在我的config.yml中我定义了我的用户角色parameters:user_role:-ADM

mysql - 如何选择多个 GROUP BY 行的 SUM?

我有一张球员与比赛的关系表以及他们在每场比赛中的得分。我正在尝试做一个SELECT,在其中我得到一个不同的球员列表,他们的总得分以及他们所参加的所有球队的总得分。由于一切都是关于单人游戏,我不知道如何仅针对该单列退出GROUPBY范围。对于下面的例子,我只说每支球队只有两名球员。在实际数据库中,如果重要的话,每个团队都有五个。谢谢大家。表格“匹配”:match_id|winning_team|56427859|0|56427860|1|56427861|1|56427862|0|56427863|1|etc...表“match_players”:match_id|team|player

每个 GROUP BY 的 MySQL n 个结果,按计数排序

Country-Company具有1-n关系。Company-Dish有n-n关系。我需要从每个区域获取菜肴,根据它们在各自区域中的数量降序排列,每个区域有100个结果。目前为止SELECTdishes.title,dishes.name,dishes.id,countries.localeFROMcountriesJOINcompaniesONcompanies.`country_id`=countries.`id`JOINcompany_dishONcompany_dish.`company_id`=companies.`id`JOINdishesONcompany_dish.`d

mysql - 获取 INSERT ... SELECT ... ON DUPLICATE KEY UPDATE 的 "Records"和 "Duplicates"计数

INSERT...SELECT...ONDUPLICATEKEYUPDATE返回作为affected-rows从(insertedcount)+(updatedcount)*2派生的数字,这是welldocumented在multipleplaces.但是在MySQLCommand-LineTool的输出中,我注意到了这个额外的信息:>INSERTINTO...->SELECT...FROM...->ONDUPLICATEKEYUPDATE...->;QueryOK,97rowsaffected(0.03sec)Records:2425Duplicates:28Warnings:0即,

php - Mysql GROUP BY 和 COUNT 用于多个 WHERE 子句

简化表结构:CREATETABLEIFNOTEXISTS`hpa`(`id`bigint(15)NOTNULLauto_increment,`core`varchar(50)NOTNULL,`hostname`varchar(50)NOTNULL,`status`varchar(255)NOTNULL,`entered_date`int(11)NOTNULL,`active_date`int(11)NOTNULL,PRIMARYKEY(`id`),KEY`hostname`(`hostname`),KEY`status`(`status`),KEY`entered_date`(`ent