草庐IT

mysql插入多行,返回失败的行

当我尝试在我的表中插入(比方说)30行时。例如INSERTINTOcustomers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)VALUES('PepE.LaPew','100MainStreet','LosAngeles','CA','90046','USA'),('M.Martian','42GalaxyWay','NewYork','NY','11213','USA'),...;并且cust_name必须是唯一的。那么我如何识别由于cust_name已经存在而未能插入的记录?可以返回吗?

mysql - 在 MySQL 中简明地查找不到 6 个月前的行

我试图在我的表格中查找从6个月前到今天的条目。这是我当前正在运行的查询:WHERE(DATE(l.date_fin)BETWEENDATE(DATE_ADD(NOW(),INTERVAL-6MONTH))ANDCURDATE())但是,我觉得这不太合适:感觉好像有一种更简洁和/或更快的方法来获得与此查询相同的结果。有没有这样的方法? 最佳答案 这应该足以得到你想要的:WHEREl.date_fin>CURRENT_DATE()-INTERVAL6MONTH; 关于mysql-在MySQL

php - 您能否在一个查询中更新具有最高 ID 的行?

我希望能够更新具有最高ID的行。问题是:我找不到任何优雅的解决方案来做到这一点。这是我迄今为止最好的尝试:$highestId=mysql_result(mysql_query('SELECTMAX(id)FROMstats'),0);mysql_query("UPDATEstatsSETviews=views+1WHEREid=$highestId");也许有比我想象的更好的方法。我每天都在跟踪浏览量我希望它自动递增最后一天(最高ID)晚上我运行一个cronjob来创建新的一天。欢迎就如何解决此问题提出任何建议,即使是完全不同的方法。表stats=>id|意见

mysql - 从 SELECT 中排除具有特定列值的行

我有包含以下列和数据的表格:stockquant----------10010-5101120101108851我需要的是排除带有stock_status=10的行和quantity同时。我需要那些带有stock_status=10的行但是quantity>0或者反过来。所以这个的期望输出是stockquant-------101120101108851谢谢。 最佳答案 好吧,您实际上是通过告诉我们您需要排除的内容来自己编写查询...SELECTstock,quantFROMyourTableWHERENOT(stock_statu

sql - 如何选择几列之一等于某个值的行?

假设我有一个包含A列、B列和C列的表。我该如何编写查询来选择A列或B列或C列等于某个值的所有行?谢谢。更新:我想忘了说我的困惑。假设还有另一列(第1列),我需要根据以下逻辑进行选择:...其中Column1='..'AND(ColumnA='..'ORColumnB='..'ORColumnC='..')像我上面那样用括号对语句进行分组以获得所需的逻辑是否有效? 最佳答案 除非我在这里遗漏了什么......SELECT*FROMMYTABLEWHERECOLUMNA=MyValueORCOLUMNB=MyValueORCOLUMNC

php - 选择列不为空的行?

默认情况下,我在mysql表中有一列为NULL。我想选择一些行,但前提是该列中的字段值不为NULL。正确的输入方式是什么?$query="SELECT*FROMnamesWHEREid='$id'ANDname!=NULL";这是正确的吗? 最佳答案 你应该使用(假设$id是一个整数):$query="SELECT*FROMnamesWHEREid='".(int)$id."'ANDnameISNOTNULL";当workingwithNULLvalues时,您必须使用ISNULL或ISNOTNULL

sql - 使用 SQL,如何计算具有特定值的行的百分比?

我正在使用PHP/MySQL制作一个显示比赛结果的网站。我想显示10场最艰难的比赛的统计数据,即大多数人参加DNF的比赛。我是这样做的:selectraceid,race.name,race.location,race.date,count(result.raceid)asdnfsfromresultinnerjoinraceonresult.raceid=race.idwhereresult.place=0groupbyresult.raceidorderbydnfsdesclimit10但这并没有考虑到比赛中的人数。我将如何修改查询以返回percentDNF(dnfs/totalr

mysql - 选择分组的行,即使它们不在另一个表中

给SQL问题加标题很难!如果您能想到如何更好地描述它,请随意更改它!我有一个非常典型的设置:3个表,users、groups和group_members。这是一个SQLfiddle:http://sqlfiddle.com/#!2/23712/1我想知道哪些用户属于哪些组。所以,我正在运行:SELECTu.id,u.firstname,u.lastname,GROUP_CONCAT(m.group_id)asgroupsFROMgroup_membersm,usersuWHEREm.user_id=u.idGROUPBYidORDERBYu.lastnameASC这很酷,并向我显示了用

mysql - 返回 MySQL 中两个日期之间的行

我想要仅在过去1天内输入的行。我有一个存储YYYY-MM-DD的日期列,我允许用户以这种格式发送他们想要查看的日期yyymmdd如何我可以使用此数据将其限制为仅前一天吗?我想这与BETWEEN关键字有关,但我想不通。 最佳答案 SELECT*fromTABLE_NAMEWHEREROW_DATEBETWEEN'2011-03-20'AND'2011-03-21' 关于mysql-返回MySQL中两个日期之间的行,我们在StackOverflow上找到一个类似的问题:

php - 在 PHP/MySQL 中访问最后创建的行

如何使用PHP/MySQL访问刚刚插入到数据库中的行?我有:$sql='INSERTINTO`jos_db`.`jos_sections`(`id`,`name`)VALUES(NULL,\'foo\')';mysql_query($sql,$dbi);bar();如何访问bar()中的新行? 最佳答案 如果你的'id'列是自动递增的,你可以使用mysql_insert_id:RetrievestheIDgeneratedforanAUTO_INCREMENTcolumnbythepreviousINSERTquery.手册中给出的