草庐IT

select-query

全部标签

mysql select 查询给出 ID(数字)等于文本的结果

我有一个表_users,其字段id为bigint(24)。这个查询的结果:SELECT*FROM`_users`WHERE`id`='5text'是id=5的行。我预计不会有结果,因为'5text'不是数字。这怎么可能? 最佳答案 MySQL在计算表达式以使操作数兼容时隐式地将字符串转换为数字。来自文档:Ifoneoftheargumentsisadecimalvalue,comparisondependsontheotherargument.Theargumentsarecomparedasdecimalvaluesiftheot

mysql - Yii2 find()/QueryBuilder 中带 WHERE 条件的 SELECT 子查询

我能够找到构建子查询的简单示例,但是当我需要包含WHERE条件时,我无法弄清楚也找不到解决方案。我正在尝试模拟以下语句...SELECTParentTable.*,(SELECTMAX(ChildTable.NumberField)FROMChildTableWHEREChildTable.FK_Id=ParentTable.Id)FROMParentTable我猜我需要类似...$query=ParentClass::find()->addSelect(ChildClass::find()->where('childTable.fk_id=parentTable.id')->max(

sql - 在 select 语句中更新表

有什么方法可以更新mysql选择查询的select_expr部分中的表。这是我要实现的目标的示例:SELECTid,name,(UPDATEtbl2SETcurrname=tbl.nameWHEREtbl2.id=tbl.id)FROMtbl;这让我在mysql中出错,但我不明白为什么只要我不更改tbl就不可能这样做。编辑:我将澄清为什么我不能为此使用普通结构。这是我正在处理的问题的更复杂示例:SELECTid,(SELECT@var=col1FROMtbl2),@var:=@var+1,(UPDATEtbl2SETcol1=@var)FROMtblWHERE...所以我基本上处于这样

php - mysql_query() 返回返回 true,但 mysql_num_rows() 和 mysql_fetch_array() 给出“不是有效资源错误

这里是有问题的代码:来自index.php:require_once('includes/DbConnector.php');//Createanobject(instance)oftheDbConnector$connector=newDbConnector();//Executethequerytoretrievearticles$query1="SELECTid,titleFROMarticlesORDERBYidDESCLIMIT0,5";$result=$connector->query($query1);echo"vardump1:";var_dump($result);e

sql - Select * from tbl where id>=5/* 然后将 id<5 的结果添加到查询 */

我有一个包含9行的表格。$id=5如果我使用SELECT*FROMtblWHEREid>=$id我得到5、6、7、8、9行。对于此查询,我想添加SELECT*FROMtblWHEREid的结果所以我将得到最后的5、6、7、8、9、1、2、3、4行。这是为了避免在数据库中访问两次然后将结果集添加到php中。编辑:是的,顺序很重要。谢谢你们的快速react。感谢@knittl(接受的答案)和@Swanand提供最佳答案。 最佳答案 你想要所有行吗?如果顺序是您要查找的顺序,请对结果集进行排序:SELECT*FROMtblORDERBYi

sql - Select * sql query vs Select specific columns sql query

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhyisSELECT*consideredharmful?可能是一个数据库nOOb问题。我们的应用程序有一个如下表表WFField|Type|Null|Key|Default|Extra|+--------------------+-------------+------+-----+---------+----------------+|id|int(11)|NO|PRI|NULL|auto_increment||children|text|YES||NULL|||w_id|int(11)|YES||NU

"slow queries log"中的 MYSQL 慢查询 - 但相同的查询手动运行速度非常快

如标题所述,在我的数据库中,各种查询出现在慢速查询日志中,但是当我手动运行它们时,它们运行速度提高了10倍。例如,一个相对简单的选择查询,有几个按参数排序的查询,在日志中通常需要100秒(是的,表非常大)......但是当我自己在同一个数据库上运行它时,它需要2秒左右。我检查了服务器的性能,当时似乎没有特别的减速或瓶颈,在那段时间也没有很多查询需要很长时间,只有一个。如何开始分析这样的问题?感谢帮助 最佳答案 当有问题的查询进入慢速日志时,您的系统可能更忙。如果rows_examined大于结果集,慢速日志可能表明索引没有被充分利用

MySQL - LONGTEXT 字段导致 SELECT-WHERE 语句挂起

由于LONGTEXT字段,我遇到了问题。一切正常,但是当执行带有任何WHERE子句的SELECT查询时,mysql进入休眠状态并且永远不会返回。只有80k条记录,显式WHERE比较工作正常。(有的记录超过1M,有的记录在700K左右,其他的只有60-100KB)。例如:[HANGs]SELECT*FROMitem_infoWHEREadded_on>'2013-02-1419:40:05'ANDadded_on这是正常行为吗?这是架构:CREATETABLE`item_info`(`item_id`bigint(20)NOTNULLAUTO_INCREMENT,`title_md5`v

php - PDO::query() 运行到 "Cannot execute queries while other unbuffered queries are active."

也许其他人和我有同样的问题。我遇到了错误:Cannotexecutequerieswhileotherunbufferedqueriesareactive.ConsiderusingPDOStatement::fetchAll().Alternatively,ifyourcodeisonlyevergoingtorunagainstmysql,youmayenablequerybufferingbysettingthePDO::MYSQL_ATTR_USE_BUFFERED_QUERYattribute.在PDO上。正如在许多线程中提到的那样,错误至少可以是以下问题之一:如此处所述,查

php - Laravel dynamic where 使用 Query Builder 进行查询

我是Laravel的新手。我想使用laravel查询构建器进行动态查询。通常我可以在php中进行动态查询$where=array('hello'=>'world');functionget($where=null){if($where=="")$where="";//Functionwhichconvertswhereclauseintoquerieswheretoqueries($where);//convertswhereclause$sql="SELECT*FROM$tbl$where";return$sql;}echoget($where);如果where子句为null查询将是