草庐IT

kkt条件

全部标签

mysql - 同样的条件,不同的结果?

通过阅读MySQL文档,我无法解释phpMyAdmin中这两个查询之间的区别:SELECT*FROMf_eanGROUPBYeanHAVINGtype='media'-->给我57059个结果SELECTean,typeFROMf_eanGROUPBYeanHAVINGtype='media'-->给我73201个结果仅仅显示不同的列,查询的结果数怎么可能不同? 最佳答案 如果您尝试过滤记录,您应该使用WHERE,而不是HAVING。HAVING用于在分组和排序发生后应用过滤器。无论如何,问题在于MySQL如何使用GROUPBY。G

php - sql mysql查询,用于根据条件随机获取定义数量的行

我正在开发一个在线考试应用程序,其中有一个问题主表,其中包含一个包含问题类型数据的字段(名称:qtype)。问题类型可以是以下三种类型之一:单例多个描述应用程序使用以下查询从此主表生成随机试卷:select*frommst_questionwheretest_id=1ORDERBYRAND()LIMIT25这会为我的在线考试申请生成包含25个问题的随机问卷。到目前为止一切正常...现在,我需要在我的应用程序中实现一个功能,其中25个随机生成的问题(或任何数量-这将取决于测试ID)将始终具有主问题中可用的不同类型问题的固定组合每个随机生成的问卷集的表(mst_question)。比如说,

Mysql选择只有特定条件的结果

这是我的问题:我有一个与不同国际项目关联的用户列表,我想要获得专门为美国项目工作的用户,所以假设有人为德国项目工作,我不希望他出现在列表中。涉及用户、项目、公司三张表这是获取为美国项目工作的用户的第一个查询:SELECTDISTINCTusers.forename,users.surname,users.email,users.company_id,users.user_idFROMprojects,company,usersWHEREprojects.project_type='US'ANDcompany.project_id=projects.project_idANDusers.

mysql - 检索所有相关数据满足指定条件的行

我有一个job表和一个visit表。一个工作可以有多次访问。我需要检索所有尚未设置为已付款的工作,并将与该工作相关的所有访问都设置为已完成。所以基本上我只需要在以下情况下找工作:尚未付款(paid='N')所有与该工作相关的访问都设置为完成(status=2)显然,执行以下操作是行不通的,因为它将返回job.paid='N'和visit.status='2'的任何结果:SELECT*FROMjobINNERJOINvisitONjob.id=visit.job_idWHEREjob.paid='N'ANDvisit.status=2;我可以检索结果,并运行额外的查询来检查作业的所有访问

php - 如何在 mysql 中确定 OR 条件的优先级

我有这样的表结构+---+----------+-----------+--------------+|id|customer|Address|Address_type|+---+----------+-----------+--------------+|1|1|Address1|2||2|2|Address2|2||3|1|Address3|1|+---+----------+-----------+--------------+数据库中有两种地址类型。我必须根据以下条件选择地址如果存在Address_type=1的客户地址,则显示该地址。如果Address_type=1不存在而A

mysql - 如何查询group by 2条件?

我这里有table。我怎么能SELECTsum(gload1)as'g1',sum(gload2)as'g2'.sum(gload3)as'g3',sum(gload4)as'g4'FROMmemberWHEREage=15-20,21-25,26-30GROUPBYgender;结果是这样的:只是样本我怎样才能这样查询。感谢您的进步。 最佳答案 SELECTCASEWHEN`age`>=15AND`age`=21AND`age`=26AND`age`参见SQLFiddle 关于mysq

mysql - 在 SQL 中使用 IF/CASE 条件

我有一个关于如何在SQL中使用IF语句的问题,所以我有3个表用户力学交流各表的字段如下usermechanicsexchanges-------------------------namenameid_userid_userid_mechaid_mechamessage我想使用类似下面的条件,我将选择user或mechanic的名称及其相应的message如果他们的id与exchanges为他们每个人(user或mechanic)拥有的那个相匹配SELECTCASEWHENmechanics.id_mecha=exchanges.id_mechaTHENmechanics.name,e

mysql - 根据两个条件选择最近的记录

我有user1与user2和user4交换消息(这些参数是已知的)。我现在想为每个对话选择最新发送或接收的消息(即每个对话LIMIT1)。SQLFiddle目前我的查询返回所有对话的所有消息:SELECT*FROMmessageWHERE(toUserIDIN(2,4)ANDuserID=1)OR(userIDIN(2,4)ANDtoUserID=1)ORDERBYmessage.timeDESC返回的行应该是messageID3和6。 最佳答案 假设较高的id值表示较新的消息,您可以这样做:查找所有涉及用户1的消息按其他用户ID对

php - MySQL在一个查询中应用多个条件

这个问题在这里已经有了答案:needtoreturntwosetsofdatawithtwodifferentwhereclauses(2个答案)关闭7年前。我有一个名为users的表,其中包含以下列:idloginstatus现在我想在PHP中创建一个统计页面,我想查看有多少用户的状态为0,有多少用户的状态为1,有多少用户的状态为2。我想以最有效的方式执行此操作,而不必运行3个查询。现在我只知道在UNION中使用3个查询来执行此操作:(SELECTCOUNT(*)FROMusersWHEREstatus='0')UNION(SELECTCOUNT(*)FROMusersWHEREst

php - 日期/时间条件

我有这段代码,我只想在特定日期执行请求的操作时才执行sql查询。(例如,如果我设置日期2015年5月4日,查询将仅在那天进行,如果我尝试在2015年5月5日进行查询,则不会发生任何事情。谢谢你的建议$con=mysql_connect($db_hostname,$db_username,$db_password);if(!$con){die('Couldnotconnect:'.mysql_error());}mysql_select_db($db_database,$con);$sql2="UPDATE`nume`SET`venit3`='".$_GET['box3']."'WHER