草庐IT

delete_by_query

全部标签

MySQL SELECT 列 COUNT(name) WHERE 条件 GROUP BY 列?

嘿,这是我正在使用的SQL语句$sql="SELECTnumber,COUNT(name)FROMpeopleWHEREid='$id'GROUPBYnumber";$result=mysql_query($sql);while($row=mysql_fetch_array($result)){$statarray['stat'.$i]=$row['COUNT(name)'];$i++;}数字列针对每个名称存储0、1、2或3,因此数组返回总计每个数字有多少名称。这工作正常。唯一的问题是,如果所有的名字都存储了一个数字1,我的数组条目“stat0”不会告诉我有多少个0,因为它被1的数量所

php - MySQL GROUP BY 和填充空行

我确定之前已经回答过这个问题,但我找不到我需要的详细信息。对于分析系统,我需要能够对行进行分组并将它们返回到图表上,按分钟、小时、天、月或年分组。我可以正常工作(下面的示例代码)。SELECTCOUNT(DISTINCTuser_id),`hour`,`timestamp`FROMtracking_requestWHEREsite_id='3'AND`timestamp`'2011-08-2922:00:00'GROUPBY`hour`,`day`,`month`,`year`ORDERBY`timestamp`ASC问题是,像大多数图表一样,我需要填补没有数据的空白(例如,最后3分钟

MySQL ORDER BY 列 ASC 包含两个未正确按字母顺序排列的单词

我正在尝试对下表进行排序:表:人物+---+----------------------+|id|Ethnicity|+---+----------------------+|1|'Hispanic'||2|'AsianAmerican'||3|'White'||4|'AfricanAmerican'||5|'AmericanIndian'||6|'Other'|+---+----------------------+SQL查询SELECTDISTINCTEthnicityFROMPeopleORDERBYEthnicityASC结果这会产生:+--------------------

mysql - 转mysql select to delete statement - 我怎么办?

这个问题在这里已经有了答案:HowtoturnthisMySQLSELECTqueryintoaDELETEquery?(6个答案)关闭8年前。我只想从一个表中删除,但我必须根据相关表中的条件进行选择。我之前在此处找到的示例讨论了从一张表中删除的内容。如何将下面的select变成delete语句?selectr.id,r.reminder_date,c.full_name,c.companyfromremindersrleftjoinclientsconr.client_id=c.idwhere(c.full_nameisnullorc.full_name="")AND(c.compa

php - mysql_query 成功返回 false

我在使用Windows7、WAMP2.2、MySQL5.5.16、Apache2.2.21和PHP5.3.8的开发环境中查询表单时遇到问题。每次我执行查询时,它都会返回一个错误:".YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'INERTIGNOREINTOusers(username,hashed_password,email)VALUES('username',''atline1"我决定将我的问题放在顶部,以便

mysql - 在使用 order by with limit 时避免在 mysql 中进行全表扫描

我正在写一个查询:select*fromtable_nameorderbyidlimit21在我使用限制小于或等于20之前,扫描的行等于确切的获取行(例如,如果限制为10,则扫描的行也只有10)。如果限制超过20,则表将被完全扫描。唯一为主键id创建的索引。谁能说出这种情况下全表扫描的原因?我的表有1099行。ExplainResult:---------------------------------------------------------------------------id|selecttype|table|type|possiblekeys|keys|key_len|

mysql - 如何仅在 WHERE COUNT(使用 GROUP BY 的子查询)=1 时更新值?

当它是组中唯一的行时,我试图通过单个查询将行值设置为1。当前表(CATEGORY_BRAND):|categoryId|brandId|featured||-----------+---------+----------||1|100|-1||1|101|-1||1|102|-1||2|100|-1||3|110|-1||3|111|-1||4|102|-1||5|101|-1||6|100|-1||6|110|-1||...|...|...|希望的结果(CATEGORY_BRAND):|categoryId|brandId|featured||-----------+--------

php - PDO 事务是否涵盖 PDO::query()?

位于PHP.net的PDO交易示例表明PDO::exec()是事务处理的,但是没有这样的例子使用PDO::query()。事务是否涵盖PDO::query()?此外,据我所知,PDO::query()返回一个结果集。如果是事务处理的,怎么会有结果集,因为语句在提交之前不应该执行?(这是否意味着PDO::query()确实是not交易?)我似乎找不到官方引用资料来说明它是否是. 最佳答案 您误解了交易。事务只是保证操作是原子的:要么所有操作都成功,要么都不成功。一旦你开始一个事务,每个查询都会被执行,并且它会被记录在事务日志中。如果操

php - MYSQL SELECT SUM() BY DATE IF NO MATCH RETURN 0

我已经将三个表相互连接起来。我正在查询关键字+统计信息。我需要按日期范围获取数据,并且如果没有该特定日期范围内的数据我希望它返回0个统计信息假设我的查询是:SELECTkeyword,SUM(stat)FROMkeywordsWHEREdate>='2012-07-10'GROUPBYkeyword;它会返回|我的关键词1|3||我的关键词2|6|示例表格内容:|编号|关键字|统计|日期|关键字组||1|我的关键字1|2|2012-07-11|1||2|我的关键字1|1|2012-07-12|1||3|我的关键字2|6|2012-07-11|1||4|我的关键字3|10|2012-07

php - INSERT 语句之谜——mysql_query 返回 true,但数据库中没有新行出现

我一定是在做傻事。我已经对此问题进行了3天的故障排除,但没有成功。这是发送到mysql_query()的PHP字符串:insertintopost_replies(postID,fromID,toID,status)values($id,$userID,$toID,".g_unread.")在你说“啊哈,SQL一定有错误”之前,请注意以下两点:mysql_query()返回真(1)在发送到mysql_query()之前,我将字符串导出到一个文本文件(见下文)-如果我将导出的文本粘贴到同一个mysql_query()语句中,它工作正常(出现新行)-如果粘贴导出的文本进入phpMyAdmi