草庐IT

insert-query

全部标签

mysql - 使用 INSERT ... SELECT 时的自动增量间隙,即使 innodb_autoinc_lock_mode = 0

即使使用,我的自动递增键也会出现间隙innodb_autoinc_lock_mode=0我将问题隔离到单个INSERT...SELECT语句。基本上,每个INSERT...SELECT语句都会将表的auto_increment递增一个即使实际上没有执行插入(重复键)。在我的例子中,我使用了INSERTIGNORE,但我没有测试,auto_increment仍然错误地递增。我担心这一点,因为这个INSERT...SELECT语句运行频率有点高,因此键会很快变大。如果没有办法,我会接受它,但是有什么办法可以避免这种行为吗? 最佳答案 这

php - 是否可以使用 PHP "if"语句对 SELECT 查询的结果来确定是否执行 INSERT 查询会导致意外的数据重叠?

我是一名学生,这是我第一次编写软件。它是LAMP堆栈上的Web应用程序,作为该Web应用程序的一部分,我编写了以下函数以在创建新用户时与数据库交互:publicfunctionCreateUser($username,$password,$email){global$DBHandler,$SQLStatement;$SQLStatement=$DBHandler->prepare("SELECTidFROMusersWHEREusername=:usernameANDverified>0");$SQLStatement->bindParam(':username',$username)

MySQL全文搜索: need fast insert and fast search

我有一个mysql数据库,用户可以在其中输入文本。然后他们需要能够搜索此文本。我刚刚实现了mysql全文搜索,它确实使搜索速度快了很多。然而,毫不奇怪,它使插入变慢了。但令我惊讶的是速度慢了多少。一次插入可能需要0.5-1.5秒。该表有3个索引列:title(maxlength200)description(maxlength3000)content(maxlength10000)此时我的表中只有大约2000条记录,与以后的记录相比,这算不了什么。有什么建议吗?这个问题一般是怎么处理的?插入需要这么长时间是否正常?我不需要全文搜索的所有功能。我真的只需要AND、OR、-、+、""的等价

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数据库在同一台机器上。 最佳答案

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 - 获取 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即,

mysql - 如何针对单个 Query 进一步优化此 MySQL 表

我有一个包含约100万行的InnoDBMySqlGeoID表。表结构是这样的:CREATETABLE`geoid`(`start_ip`int(11)NOTNULL,`end_ip`int(11)NOTNULL,`city`varchar(64)NOTNULL,`region`char(2)NOTNULL,PRIMARYKEY(`start_ip`,`end_ip`))ENGINE=InnoDBDEFAULTCHARSET=latin1;只会对该表运行一种类型的查询:SELECTcity,regionFROMgeoidWHERE1259650516BETWEENstart_ipANDe

mysql - 如何在不在where子句中添加表名或表别名的情况下避免 "Ambiguous field in query"

我有一个选择查询,其中我加入了几个表,比如T1和T2两个表都有一个名为STATUS的字段,我不需要获取。在where子句中,我需要添加WHERESTATUS=1和更多条件。但不知何故,我无法将表名或表别名添加到where子句中的字段,即我无法使用whereT2.STATUS=1。有什么方法可以始终将where子句中的STATUS=1视为T1.STATUS以便我可以避免“模糊字段错误”?这是一个示例查询:selectT1.name,T1.address,T1.phone,T2.title,T2.descriptionfromT1LeftJoinT2onT1.CID=T2.IDwhereS

php - 使用新的 wp_query 将 sql 查询转换为 wordpress 查询

我正在尝试将sql查询转换为wordpress查询,但无法理解它是如何完成的?我尝试转换为newwp_query的查询$query="SELECTSQL_CALC_FOUND_ROWSdistinctwp_posts.IDFROMwp_postsINNERJOINwp_postmetaON(wp_posts.id=wp_postmeta.post_id)INNERJOINwp_postmetaASmt1ON(wp_posts.id=mt1.post_id)WHERE1=1ANDwp_posts.idNOTIN(0)ANDwp_posts.post_type='topic'AND(wp_

mysql group by query with column filter

我有一个mysql表,其中包含下面提到的C1、C2和C3列数据。表格数据如下(保密的虚拟数据)。我想要一个mysql查询,它将按c1降序返回所有C1列的计数(首先获得最大计数C1),其中C1的最大计数desc和C2数据重复了最大次数,与C3相同。C1C2C3XAUXAUXBVYHKYHKYHKZFRZFPZGPZFR输出应采用以下格式。CountC1C2C34ZFP3YHK3XAU我能够在同一查询中获取计数,但不能获取C2、C3的最大重复值。 最佳答案 你可以尝试使用select子查询来实现。查询1:SELECTCOUNT(*),C