草庐IT

多条件

全部标签

MySql Select 查询返回记录,当 WHERE 条件不为真时

MySQL查询返回一条记录,即使条件不满足也是如此。SELECT*FROM`orders`WHEREorder_id='10000R'没有符合此处给出的WHERE条件的记录。但是MySQl返回一条order_id=10000的记录看起来WHERE条件忽略了引号内的alpha。如果查询有任何错误或者这是MySql错误,请帮助我 最佳答案 我假设order_id是一个int,并且MySql正在隐式转换varchar'10000R'以匹配数据类型列的尾部'r'。请参阅MySql文档中的“TypeConversioninExpression

MySQL `BEFORE INSERT TRIGGER` 条件下如何跳过数据插入?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:MySQLTriggertopreventINSERTundercertainconditions在MySQLBEFOREINSERTTRIGGER中,如何跳过条件下的数据插入?delimiter//droptriggerifexiststest_trigger//createtriggertest_triggerbeforeinsertontforeachrowbeginset@found:=false;#Somecodeif@foundthen#Howtoskipthedatainsertionunder

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对