草庐IT

update_by_query

全部标签

没有重复键的 MySQL INSERT/UPDATE

我可能误解了如何使用ONDUPLICATEKEY语法,或者我的数据库结构需要一些工作,但这里是。我有一个表(bookings-meta),它表示与另一个表(bookings)关联的元数据,bookings表中的不同行在另一个表中可能有也可能没有与它们关联的特定元数据。bookings-meta表有以下列,meta_id(主键)、booking_id、key和value。根据我的理解,要使用ONDUPLICATEKEY我需要知道在这种情况下是什么meta_id,通常情况并非如此,我只是尝试使用booking_id将键值对推送到表中,因此如果特定键存在,则将其替换,否则将其插入。目前我有一

php - MySQL - 不同的 UPDATE else INSERT 语句

我正忙于执行UPDATE/INSERT请求,但关键在于:tablePLAYERS{player_idgame_idteam_idpositionnumber}应该发生以下情况:我测试是否有条目在哪里player_id='$player_id'ANDgame_id='$game_id'ANDteam_id='$team_id'。如果存在,则发生以下情况:position='$position'ANDnumber='$number'有什么方法可以仅使用MySQL查询语言来完成此操作,而无需在查询之间进行PHP验证? 最佳答案 INSER

python - 你如何让 SQLAlchemy 覆盖 MySQL "on update CURRENT_TIMESTAMP"

我继承了一个较旧的数据库,该数据库设置有一个“更新时CURRENT_TIMESTAMP”,放在一个应该只描述项目创建的字段上。对于PHP,我一直在UPDATE子句上使用“timestamp=timestamp”,但在SQLAlchemy中,我似乎无法强制系统使用设置的时间戳。我别无选择,需要更新MySQL表(数百万行)吗?foo=session.query(f).get(int(1))ts=foo.timestampsetattr(foo,'timestamp',ts)setattr(foo,'bar',bar)www_model.www_Session.commit()我也试过:fo

php - SQL 将 ORDER BY 结果作为数组返回

是否可以将组作为关联数组返回?我想知道纯SQL解决方案是否可行。请注意,我发布了我可能会不必要地使事情变得更复杂,但这主要是为了让我了解SQL的强大功能。我的问题:我在数据库中有一个单词列表,应该按字母顺序排序并根据单词的第一个字母分组到不同的组中。例如:apebroomcoconutbananaapple应该返回为array('a'=>'ape','apple','b'=>'banana','broom','c'=>'coconut')所以我可以轻松地按首字母创建排序列表(即单击“A”仅显示以a开头的单词,“B”以b等开头的单词。这应该使我更容易在一个查询中加载所有内容并制作基于Ja

php - sql multi query 可以被认为是原子指令吗?

对于php实现的观点,multi_query是数据库上的原子指令还是它所做的只是顺序执行所有查询?谢谢。 最佳答案 它按顺序执行查询。 关于php-sqlmultiquery可以被认为是原子指令吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3335460/

mysql - MySQL 查询中 ORDER BY 和 LIMIT 的执行顺序

我有一个这样的查询,我想以分页格式显示排序的记录。这是我的查询。SELECT*FROManswersWHEREuserid='10'ORDERBYvotesLIMIT10,20LIMIT的两个参数将用于生成记录的逐页显示。现在,我的问题是ORDERBY。MySQL是如何执行这个查询的?第一种方式根据过滤器选择记录对它们进行排序限制他们第二种方式根据过滤器选择记录限制他们对它们进行排序如果我像MySQL引擎一样思考,我会想要实现第2个,因为这样我就必须对较少的记录进行排序?有人可以解释一下吗?问候 最佳答案 SQLLIMIT将在所有数

phpmyadmin - 我在 phpmyadmin 中注意到 "Maximal length of created query"有一个 mysqldump 选项吗?

当我尝试重新导入使用mysqldump创建的数据库时,出现服务器已消失的错误。当我从phpmyadmin导出时,我没有收到该错误。我正在尝试使用mysqldump模拟phpmyadmin导出输出。phpmyadmin将“创建查询的最大长度”设置为50000。这在mysqldump命令中转换为什么选项?这是我目前所拥有的:mysqldump-uusername-ppass>backup.sql 最佳答案 这将限制生成的查询的长度。--net-buffer-length5000 关于phpm

mysql - 我如何在 Zend_Db_Select 中使用 MySQL GROUP BY 修饰符 WITH ROLLUP?

我的网络应用程序(PHP/MySQL+Zend)中的SQL查询使用许多参数来构建搜索查询。但是,获取的记录应按两列分组以获得小计。WITHROLLUP似乎是查找小计的好解决方案,但Zend_Db_Select不支持此修饰符。有什么解决办法吗? 最佳答案 嗯,$select->from(array('t1'=>'table1'))->where("where");->group("(field1)WITHROLLUP"); 关于mysql-我如何在Zend_Db_Select中使用MySQ

mysql - 如何确定字段/列是否受 UPDATE 语句影响

大家好,感谢您的回答和评论。我有一个包含多个字段的表,其中有version、last_modified和modified_by我正在编写一个触发器:每次/任何更新后将version增加1,将last_modified设置为当前时间戳,在modified_by中设置最近修改的用户id,防止程序员通过发出信号(在这种情况下)忽略/忘记在UPDATE语句中设置modified_by=userid。我怎样才能做到这一点?我尝试检查isnull(NEW.modified_by),但后来意识到NEW.modified_by与OLD.modified_by的值相同如果没有受到影响。此外,检查NEW.

mysql - SQL "group by"使用优先级

我有一张表,其中我可以为给定的ID设置多个名称,如下所示:a_table(idint,namevarchar(100),priorityint);我需要一个将搜索名称的查询,但要确保它将只为每个ID返回1个名称,并且该名称将是具有更高优先级的名称。例如如果我的数据是1,AaaB,21,AbbB,11,AccB,02,foo,03,AddC,0Iwantmyqueryfor"A%"toreturn:1,AaaB3,AddCIwasthinkingsomethinglike:select*froma_tablewherenamelike'A%'groupbyid;但这并不能保证优先级高的值