草庐IT

where-clause

全部标签

mysql - "Optional"(Mysql查询中的WHERE子句

我在使用MySQL中的SELECT查询时遇到了一些问题,非常感谢您提供一些指导。请随时向我指出现有答案(如果有,但我错过了)。当前查询如下:SELECTe.*,ie.aaa,ue.bbb,ue.cccFROMieLEFTJOINeONie.e_id=e.e_idLEFTJOINueONie.e_id=ue.e_idWHEREie.other_id=?ANDue.unrelated_id=?ORDERBY...共有三个表:ie、e和ue。表ie和ue是e的关系,因此包含它的外键(e_id)。?代表一个输入参数。问题出在ue.unrelated_id=?部分。我真正想在这里做的是:当且仅当

php - MySQL 连接两个表,其中来自 PHP 变量的 WHERE 语句已经存在

我通常做这样的连接:$query="SELECTtable1.ColA,table2.ColC"."FROMtable1,table2"."WHEREtable1.uid=table2.uid";但在这种情况下,WHERE部分已用于使用PHP变量指定记录。在这种情况下,我该如何加入表2?SELECTSQL_CALC_FOUND_ROWSColA,ColBFROMTable1WHEREvalue=$value 最佳答案 他们已经加入了。与SELECTtable1.ColA,table2.ColCFROMtable1INNERJOINt

mysql - 如何使用 MySQL 在别名列上使用 WHERE 条件进行选择?

我有以下查询:SELECTIF(TIMESTAMPDIFF(HOUR,users_codes.timestam,CURRENT_TIMESTAMP())如何只返回具有'no'的行? 最佳答案 添加一个WHERE条件。您不能在where子句上使用ALIAS。SELECTIF(TIMESTAMPDIFF(HOUR,users_codes.timestam,CURRENT_TIMESTAMP())或者使用子查询SELECT*FROM(SELECTIF(TIMESTAMPDIFF(HOUR,users_codes.timestam,CURR

php - MySQL几种排序条件: WHERE and LIMIT in the same query

我有一个数据库,我想像这样对结果进行排序:$query1="SELECT*FROMpicturesLIMIT0,10";$result=mysql_query($query1);while($row=mysql_fetch_array($result))echo$row['picture_rating'];和$query1="SELECT*FROMpicturesWHEREcolumn_name='column_text'";$result=mysql_query($query1);while($row=mysql_fetch_array($result))echo$row['pict

mysql - 需要用两个不同的 where 子句返回两组数据

我有一张记录交易记录的表格。表格设置为:transactions:id,account_id,budget_id,points,type我需要返回每个budget_id的type='allocation'点总和和type='issue'点总和我知道如何在一个查询中执行每一项,但不知道如何同时执行这两项。预期结果集:budget_idallocatedissued4342000001002421000005020621450003940 最佳答案 SELECTbudget_id,SUM(IF(type='allocation',poi

mysql - SQL 从两个表中选择,如果 WHERE 子句为假,则获取列的空值

http://sqlfiddle.com/#!9/cfd41ef/1我想从person表中获取每一行,如果WHERE子句为假,我想获取空值。有没有办法做到这一点?提前致谢。CREATETABLE`pet`(`owner_id`INT(11)NULLDEFAULTNULL,`pet_type`ENUM('DOG','CAT')NULLDEFAULTNULL,`pet_name`VARCHAR(50)NULLDEFAULTNULL)COLLATE='latin1_swedish_ci'ENGINE=InnoDB;CREATETABLE`person`(`id`INT(11)NULLDEFA

mySQL存储过程where子句问题

我有一个mySql存储过程,看起来像这样--delimiter|createprocedureGetEmployeeById(inIDvarchar(45))beginselectid,firstName,lastName,phone,address1,address2,city,state,zip,username,password,emptypeidfrommyschema.tblemployeestwheret.id=IDlimit1;end|delimiter;如果我没有适当的限制1,它总是返回表中的所有行——每条记录的ID值都设置为ID参数。为什么我不能只使用whereid=

mysql - 让mysql忽略where条件

是否可以让mysql在未设置变量的情况下忽略条件,例如SELECT*FROMfooWHEREid=$idANDbar=$baz如果$baz设置为正常运行查询,否则运行减去AND子句的查询?谢谢 最佳答案 SELECT*FROMfooWHEREid=$idAND(bar=$bazOR$baz[equalsnull,emptystring,zero,whatever])我不知道MySQL是否使用过shortcircuitevaluation在其执行计划中,但将更便宜的比较放在首位可能是有益的,例如:SELECT*FROMfooWHERE

php - WHERE OR 子句无法正常工作

我正在尝试选择具有特定ID的类别,而sql查询表现得非常奇怪,请看一下:SELECT*FROM(`feeds`)WHERE`cat_id`=1OR2OR3LIMIT0,30结果包含一个cat_id为4的item,看这张图:我需要这个才能工作,脚本执行此操作:用户指定一个国家,脚本获取具有该国家ID的所有类别,然后脚本必须选择具有这些类别ID的所有提要。最后一部分是从前面的部分中获取包含所有提要ID的帖子。这就像一个新闻站点,提要是导入的rss提要。任何帮助将不胜感激!顺便说一句,我正在为此使用codeigniter。 最佳答案 试试

php - 在 CodeIgniter 中使用 WHERE CONCAT 和 Active Record

我试图在此处插入的原始查询是:SELECT*FROMxWHERECONCAT(y,'',x)LIKE'%value%';我已经查看了AR文档,但找不到任何允许我执行此操作的内容。我不太熟悉它是如何构造这些查询的,希望有人能给我指出正确的方向。非常感谢。 最佳答案 如果你想使用AR类,你需要将FALSE作为第三个参数传递,以避免查询被自动转义。你现在只能自己逃避争论了:$value=$this->db->escape_like_str($unescaped);$this->db->from('x');$this->db->where(