草庐IT

last_lock_in_thread

全部标签

使用子选择与值列表的 MySQL IN 子句

我需要对一些相关数据进行两级过滤。第一个查询类似于:SELECTt1.fk_idFROMt1LEFTJOINt3ONt3.fk_id=t1.fk_idWHEREt1.field1>10ANDt3.field2=Y第二个查询针对具有相同fk_id字段的另一个表运行,看起来像SELECTt2.fk_id,SUM(t2.field3)ASsum_3,SUM(t2.field_4)ASsum_4FROMt2WHEREfk_idIN(fk_values_from_query_1)GROUPBYt2.fk_idHAVINGsum_3>1000现在,据我所知,我可以运行这2种不同的方式-虽然我不受任

php - MySQL 使用 "in"条件检索重复结果

在编码的所有方面,SQL是我最薄弱的技能,所以如果我听起来好像不知道自己在说什么,请原谅我,因为我可能不知道!情况:构建一个购物车,其中名为“cart”的表有一个名为“products”的字段,类型为VARCHAR255,“products”的值将是一个逗号分隔的字符串。字符串的每个元素都是一个数字,表示“产品”表中产品的ID。客户的记录可能在“产品”字段中包含一个类似于1,1,1,2,3的值。这意味着客户添加了项目1中的三个、项目2中的一个和项目3中的一个。问题:所以,这是我目前的sql语句,但问题是我需要一个sql语句,它会从产品表中返回重复的产品数据:SELECTproduct_

php - SQL : How to Count occurrences in TableA, 与表连接,然后按出现次数排序?

我想要的:对于连接到Group_ID=1的每个用户,我想计算该用户参加的事件数量,并使用该信息按参加次数最多的用户DESC(结束)进行排序。将用户连接到组的表:user_r_group:IDUser_IDGroup_ID111231321412显示用户参加了哪些事件的表格:activities_attended:IDActivity_IDUser_ID111我正在寻找的结果:User_IDAttendings133221有没有办法写一个mysql_query来实现这个?确实有这种感觉。还是我需要用查询组合来解决PHP中的循环问题?我已经查看了jointables的方法,我稍微熟悉ORD

mysql - 强制 MySQL 返回 IN 中所有选项的结果

我有一个简单的MySQL语句:SELECTq1,COUNT(q1)FROMresultsWHEREq1IN('1','2','3');目前只有1和3的结果-结果是:1=63=7但我需要的是让MySQL返回1,2和3的结果,即使2没有数据,如下所示:1=62=03=7有什么想法吗? 最佳答案 这很棘手,因为没有行与您的值(2)匹配,因此无法计算它们。我会通过创建一个包含我想要计算的值列表的临时表来解决这个问题:CREATETEMPORARYTABLEq(q1INTPRIMARYKEY);INSERTINTOq(q1)VALUES(1)

c# - 惊人的错误 "The given key was not present in the dictionary."

我使用SqlCe作为我的数据库,但是当我将所有表复制到MySql数据库时,这个异常开始了!我的代码:using(MySqlConnectionconSQL=newMySqlConnection(conSQLSTR)){try{conSQL.Open();}catch(MySqlExceptione){stringerrMsg=e.Message;MessageBox.Show(errMsg,"error",MessageBoxButtons.OK,MessageBoxIcon.Error);returnfalse;}using(MySqlCommandcomSQL=conSQL.Cre

MySQL 升级后 MySQL NOT IN 查询速度变慢

这是一个非常简单的查询:SELECT*FROMtemp_companyWHEREnumberNOTIN(SELECTnumberFROMcompany)之前需要15分钟,但那是在缓冲池大小太小的Mysql安装上,15分钟没问题,因为这是每月任务。我升级到Mysql5.7(从5.1或5.2之类的东西),因为原始安装是32位,我无法将innodb缓冲池大小增加到该数据库所需的最小10gb(我在一台机器上将其设置为16GB32GBRAM。一个月后我去运行这个查询,它在6小时后仍在运行。上面的解释是:id|select_type|table|partitions|type|possible_k

mysql - select * where id in (....) 和所有 columX 都相等

大家好,我必须处理一个特殊的问题。首先这是简化表:id|A|B-------------1|a|12|b|23|c|14|d|15|e|36|f|17|g|2多亏了一个相当蹩脚的API,我得到了一个所需的ID列表,比如(1,2,3,5,6)但是,在此列表中,我必须仅选择B列中具有特定未知值的行。在此示例中,未知值将为1,因为第一个匹配的ID在B列。因此我需要这些行1,3,4,6因为必需第2行和第6行在B列中具有不同的值。我希望你能跟到这里。问题已经通过在软件中过滤结果解决了,但我想知道是否有纯SQL的解决方案?数据库是MySQL,我没有机会更改表或API,因为这是现有软件的插件:(提前

php - SQL事务和表SELECT LOCK说明

我有一个关于在线交易的问题,想用SELECT和UPDATE查询澄清以下问题。我将使用下面的示例向您解释这一点。X正在进行在线交易。他的账户余额是1000美元。他打算购买200美元的商品,之后他的帐户余额应该是800美元。那也行;现在让我进一步说明这一点BeginDBtransaction.Step1:accountbalanceis$1000{Selectthebalancefromadifferentscript}Step2:Buysomethingfor$200{Selectthebalancefromanotherscript}Step3:Remainingbalance$800

mysql - 'IN/ALL/ANY' 子查询中的未知列

我有2个表:members和member_logs。成员可以属于成员表中的组。给定一个日期范围和一个组,我试图弄清楚如何获得成功登录次数最多的10天。到目前为止,我所拥有的是一个巨大的子查询恐怖巢穴。SELECTcount(member_id)AS`num_users`,DATE_FORMAT(`login_date`,'%Y-%m-%d')AS`reg_date`FROMmember_logsWHERE`login_success`=1and`reg_date`IN(SELECTDISTINCTDATE_FORMAT(`login_date`,'%Y-%m-%d')AS`reg_da