草庐IT

where-clause

全部标签

MySQL 使用 LIKE 和 WHERE 选择

我有一个传记数据表,我需要做一个查询来选择在他们的传记中有“死”这个词并且死亡日期为NULL的人。这不起作用:SELECT*FROMpeopleWHEREbioLIKE'%died%'ANDdeath_dateISNULL这会选择death_date为null的每个人,但也会选择他们的简历中没有“死亡”一词的人。我可以在一个查询中执行此操作吗? 最佳答案 它可能是一个像“完全死了”这样的词,但他们仍然会被选中。仔细检查“已死”短语是否不存在于您选择的记录中的某个单词的一部分。 关于MyS

mysql - SQL中where子句中的IF语句

我正在开发一个日历应用程序。它以两种格式存储时间。该表具有以下列title、startDate、startTime。如果用户提供开始时间加上开始日期。数据库在startTime列中存储UNIX时间戳(自UNIXepok以来的秒数),而startDate为NULL。如果用户只提供开始日期,数据库将以nnnn-mm-dd格式存储日期到startDate中,将NULL格式存储到´startTime`.我有这个数据库结构,因为它更容易显示世界各地的时间,因为不同的时区有不同的夏令时。我想选择在指定日期之后发生的事件。客户端计算机向服务器提供当天开始的UNIX时间戳($unix)和格式为nnnn

php - SELECT 多行 WHERE 匹配两个条件

这在我的示例中会更好:我有一个表格,其中存储了用户从一个大表格中得到的答案。每份表格有139个问题。这些问题存储在不同的表中,在需要时与questionID连接。对于每个用户,都有一个ID。我现在需要制作过滤器,以仅显示在特定问题上匹配一个或多个答案的用户。例如,我想要用户,其中问题14的答案为"is",问题54不为空且问题100大于10。表格如下所示:**userID**|**questionID**|**answer**114"yes"154"something"1100"9"214"no"254"north2100"50"314"yes"354"test"3100"12"结果我只

MySQL 错误 "There can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT clause"即使我没有做错

CREATETABLEAlarmHistory(idINTUNSIGNEDNOTNULLAUTO_INCREMENTPRIMARYKEY,valueDOUBLENOTNULL,startedStampTIMESTAMPNOTNULL,finishedStampTIMESTAMPDEFAULTCURRENT_TIMESTAMPNOTNULL,);尝试创建上表时出现以下错误:“SQL错误(1293):表定义不正确;在DEFAULT或ONUPDATE子句中只能有一个带有CURRENT_TIMESTAMP的TIMESTAMP列”。我的问题是这是一个错误吗?因为当然,我有两个TIMESTAMP列

php - Mysql查询WHERE列在json数组中

我设置了一个查询,它可以选择多项内容。$stm=$db->query('SELECTstartUser,forUser,percentage,time,taskTitle,taskDesc,colorFROMadmin_taskWHEREforUser="'.$queryanswer.'")');但是对于用户来说在数据库中是这样的:["demo","user"]如何查看forUser(上面的json数组)是否有demo?我什至可以检查一下吗? 最佳答案 我认为你只能在Mysql5.7中实现这一点。在5.7版本中,您可以执行以下操作:

mysql - 子查询 where 子句中的未知列

我的INNERJOIN子查询的where子句有问题。我收到了M.idMembre的未知列错误。我试过使用表名而不是别名,但我遇到了同样的问题。我还尝试从子查询中删除WHERE子句,并在子查询后的ON子句中添加此条件。但是,无论哪种方式,我都遇到了同样的问题。我觉得这很明显我在这里失踪了。SELECTDISTINCTM.`idMembre`,`couponsTypes`.`maxCouponType`FROMmembresAS`M`INNERJOIN(SELECTidMembre,MAX(coupons.`idType`)AS`maxCouponType`FROMcouponsWHERE

sql - 在 MySQL 中的 HAVING 和 WHERE 子句之间使用 'OR'?

我正在尝试使用一个简单的已提交字段在MySQL中获取记录。更准确地说,用户输入姓名(名字或姓氏或全名),服务器应返回匹配的行。我目前所做的是这样的:SELECT*FROMpeopleWHEREfirstnameLIKE'%user_submitted_data%'ORlastnameLIKE'%user_submitted_data%'目前效果很好,但(显然)当用户提交全名时将无法使用。有没有办法在整个“WHERE类型条件”和“HAVING类型条件”之间添加一个OR?这样我就可以做类似的事情:SELECT[somefields],CONCAT(firstname,'','lastnam

mysql - "Cannot used in global ORDER clause"与 mysql 排序

我对这个SQL查询有疑问:(SELECTtb1.id,tb1.bdate,tb1.jumpCard,tb1.publicImage,tb1.lastloginFROMusersAStb1,onlineAStb2WHEREtb1.valid='1'ANDtb1.sex='female'ANDtb1.looking_for='male'ANDtb1.id=tb2.member_idORDERBYtb1.publicImage)ORDERBYtb1.idDESC出于某种原因我得到:Table'tb1'fromoneoftheSELECTscannotbeusedinglobalORDERcl

mysql - 为什么 SELECT ... WHERE last_name = 0 返回所有行?

我在MySQL中有一个简单的表:createtablet_users(user_idINTNOTNULLAUTO_INCREMENT,first_nameVARCHAR(100)NOTNULL,last_nameVARCHAR(100)NOTNULL,PRIMARYKEY(user_id));我很困惑地发现以下查询返回了所有行:SELECTfirst_name,last_nameFROMt_usersWHERElast_name=0;谁能解释一下?谢谢! 最佳答案 在MySQL中,如果比较一个字符串和一个数字,该字符串将被转换为一个

java - 在 JDBC 的 QUERY WHERE 子句中指定变量名

有人可以给我一个关于如何在JDBC中创建查询以在WHERE语句中获取变量名称的链接,或者写一个示例,更具体地说,我的代码看起来像这样:privateStringgetLastModified(Stringurl){StringlastModified=null;ResultSetresultSet;Stringquery="selectLastModifiedfromCacheTablewhere"+"URL.equals(url)";try{resultSet=sqlStatement.executeQuery(query);}现在我需要能够返回ResultSet对象的语法,其中ca